投稿日:2017/08/25
更新日:2017/08/26
Windows7移行のOSに標準搭載されているシェルスクリプト。
その名の通り非常にパワフルで、Windows上で行われるほとんどの事象を操作できるがあまり流行っていない。
過去にはWindows Script Host (WSH) があったがシェルにダイレクトに利用されているものではなく、デバッグも困難であった。
それに比べPowerShellは専用デバッガが付属し、オブジェクト指向をサポート、より昨今流行のLL言語のように記述できるようになったため、開発がスムーズになった。
バージョン
最新は5.0で6.0のリリースが間近となっている。
Window7初期同梱は2.0、別途インストールで最新の5.0にあげることが出来る。
2.0では一部機能が制限されているので注意。(ハッシュをJSON形式で出力する、などは3.0以降の機能)
PowerShell起動方法
ファイル検索にて、powershell と検索する。
Windows PowerShell.exeファイルがコンソール、Windows PowerShell ISEがデバッガだ。
PowerShellスクリプトの外部ファイル化
.ps1拡張子ファイルとして、外部ファイル化して管理することができる。
外部ファイルのPowerShellを実行するためには 実行セキュリティポリシー を変更し許可する必要があるのだが、これにはレジストリの書き換えが発生する。
これはPowerShellが強力であるがゆえ、認識の無いまま実行されないようにする処置と思われるが、必ず書き換えが必要というほど厳格なものではない。
回避方法等、詳しくはこちらにまとまっている。
管理者権限なしでPowerShellスクリプトを実行する方法
Windows PowerShell ISE
公式かつ唯一?のデバッガ。
echoでどんなオブジェクトでもコンソール出力できるため中々使いやすい。
ブレークポイントの設定もできるが、これは上記外部ファイル化したものでなければ設置不可なので要注意。
外部ファイル化のメリットの多くはブレークポイント利用にあると思っている。
COM object
PowerShellを経由して、ExcelのCOM objectを操作することが出来る。
用意されているオブジェクトはVBAと同じだが、構文はPowerShellよろしくオブジェクト指向で書くことができる。
Excel操作
こんなことができるよ。
PowerShell で Excel をどうのこうのすることに興味を持ってくれると嬉しい
VBAのリファレンスにはこれ。
Excel VBA リファレンス
構文はVBAだが、オブジェクトは同じなので多少の読み替えは発生するが使うにあたってそれほど障害は無い。