Windows PowerShell

こんにちは、フルーツポンチです。

今回は、Windows7から標準搭載されている、”Windows PowerShell”についてです。

 

Windows PowerShell

 

“Windows PowerShell”はWindows7から標準搭載されるようになったシェルで、今まで使われてきた”コマンドプロンプト”に比べ、多機能化し、文法をモダン化したものとなっています。

最近では、”PowerShell Core”というものが登場し、MacやLinuxでも(使えるコマンドは減っていたりしますが)”Windows PowerShell”を使えるようになりました。

 

“Windows PowerShell”(または”PowerShell Core”)の個人的に利点だと思う点は、一つ目はWindowsに標準搭載されているという点です。
“コマンドプロンプト”と同じくWindowsに標準搭載されているため、追加でインストールしなくても使用することができ、また、”Windows PowerShell”の開発環境として”Windows PowerShell ISE”というものも標準搭載であるため、環境構築に手間がかからないためです。
二つ目は、“.NET Framework”(または”.NET Core”)を使っているという点です。
“Windows PowerShell”は実行に”.NET Framework”を使っており、”.NET Framework”のライブラリを使用できるため、特に”.NET Framework”を使っているならその知識をそのまま応用でき、複雑なものを比較的簡単に作成できるためです。

“Windows PowerShell”の個人的に欠点だと思う点は、一つ目はセキュリティホールになりやすいという点です。
“Windows PowerShell”はWindowsに標準搭載となったため、攻撃側からするとWindowsにほぼ確実にインストールされているはずなので、”Windows PowerShell”の脆弱性を狙って攻撃すれば高めの確率で対象への攻撃に成功するといえるためです。
また、ほかのプログラムの脆弱性を突いた攻撃の場合も、新しく何かをインストールしたりせずに攻撃側の望む動作をさせることができ、ウイルス検知ソフトなどに脅威として検知されにくいためです。
これらの問題は、WindowsUpdateなどの更新や”Windows PowerShell”の設定を適切に行うことである程度の軽減が可能です。
二つ目は、“コマンドプロンプト”との互換性があまりないという点です。
ちょっとしたバッチなどであれば動く場合もありますが、複雑なものの場合ほぼ確実に動かなくなります。
また、コマンドの出力が変わっていたりもするので、同じ出力になる場合はあまりないと思います。

 

“Windows PowerShell”には、”Windows10 Creators Update”で[スタート]の右クリックメニューの項目の中の”コマンドプロンプト”から置き換えられたという経緯があります。(設定で元の”コマンドプロンプト”に戻すことができますが)
このことから、Microsoftとしては”コマンドプロンプト”より”Windows PowerShell”を使ってほしいのだと思います。

“コマンドプロンプト”は今も使われ続けているので、おそらくすぐに無くなることは無いと思いますが、将来無くなる可能性に備え、また、新しい機能を使い業務を効率化したり、昨今の”Windows PowerShell”を標的とした攻撃から身を守るためにも、”Windows PowerShell”について学習していくことが好ましいと思います。

タグ: