過去にも紹介しているPowerShellのISE(統合スクリプティング環境)であるPowerGUI、これまでは公式ではPowerShell 2.0対応だったのが、8/Apr/2013リリースのV3.6.0でPowerShell 3.0対応となりました。
これで過去に紹介したような面倒な手間なくPowerShell 3.0を扱えます。
PowerShellエディタ環境のPowerGUIをインストールしてPowerShell3.0として起動する
新規ダウンロード
PowerGUIの公式からどうぞ。
既に利用していて更新
Script Editorの起動で、ポップアップが現れます。あるいは、Help > Check for Updateでも確認、ダウンロード、インストールが可能です。
PSVersionTableの確認
念のため、確認しましょう。しっかり、PowerShell 3.0 / .NET 4.0環境です。
PowerGUIのメリット
PowerShell ISEでは効かない補完が強力です。現在の変数に受けた内容を常時表示しているのは、ウォッチウィンドウのような感じですね。
また、メソッドのインテリセンス補完でVSのように、メソッド入力の補完が効きます。
他にもありますが、それは前回の記事をどうぞ。
- PowerShellエディタ環境のPowerGUIをインストールしてPowerShell3.0として起動する
- PowerGUI ScriptEditorでps1とdllをコンパイルして実行可能形式(.exe)にする
いまだに残る問題
今でもDefault ParamterSetで他の選択肢が出てしまう問題は残っています。
これは、PowerShell ISEでは起こらないので、PowerGUIの対応待ちですね。
PowerShell ISEと異なり、コマンドレットなどを変数で受けた時、一度変数受けのステートメントを実行しないと受けた変数からメソッドの表示がインテリセンス補完されません。
例えば、以下はPowerShell ISEであれば、変数受けのステートメントの実行無く$svc.のタイミングでインテリセンスが効きます。
が、PowerGUIの場合は、一度$svc = Get-Service -Name workstationを実行しないと$svc.のメソッド/プロパティ補完が効きません。
$svc = Get-Service -Name workstation $svc.WaitForStatus() #PowerGUIでは、.WaitForStatus()の補完が効かない
コマンドレットのパラメータが受けるバリューを補完できません。例えば、以下のコードの場合に -Nameが受けられるサービス名の保管がPowerGUIはできません。
Get-Service -Name #PowerGUIは、-Nameで受けられるサービス名が補完されない。
いまだに残る問題
まだまだ動的なインテリセンス解析が改善の余地ありですね。いずれにしても愛用者も多いわけで、素晴らしいです。