tech.guitarrapc.cóm

Technical updates

PowerShell3.0にPowerGUIが対応

過去にも紹介しているPowerShellのISE(統合スクリプティング環境)であるPowerGUI、これまでは公式ではPowerShell 2.0対応だったのが、8/Apr/2013 リリースのV3.6.0でPowerShell 3.0対応となりました。 これで過去に紹介したような面倒な手間なくPowerShell 3.0を扱えます。
PowerShellエディタ環境のPowerGUIをインストールしてPowerShell3.0として起動する

新規ダウンロード

PowerGUIの公式TOPからどうぞ。
http://powergui.org/index.jspa

既に利用していて更新

  • Script Editorの起動で、ポップアップが現れます。
  • あるいは、Help > Check for Updateでも確認、ダウンロード、インストールが可能です。

PSVersionTableの確認

念のため、確認しましょう。 しっかり、PowerShell 3.0 / .NET 4.0環境ですね! [office src="https://skydrive.live.com/embed?cid=D0D99BE0D6F89C8B&resid=D0D99BE0D6F89C8B%21551&authkey=AMHJ0ilLIpViQY8" width="318" height="175"]

PowerGUIのメリット

PowerShell ISEでは効かない補完が強力です。 他にもありますが、それは前回の記事をどうぞ。
PowerShellエディタ環境のPowerGUIをインストールしてPowerShell3.0として起動する PowerGUI ScriptEditorでps1とdllをコンパイルして実行可能形式(.exe)にする

いまだに残る問題

  • 今でもDefault ParamterSetで他の選択肢が出てしまう問題は残っています。 これは、PowerShell ISEでは起こらないので、PowerGUIの対応待ちですね。 [office src="https://skydrive.live.com/embed?cid=D0D99BE0D6F89C8B&resid=D0D99BE0D6F89C8B%21553&authkey=AMcYCqXms7vdCtE" width="320" height="159"]
  • また、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で受けられるサービス名が補完されない。
    

いまだに残る問題

まだまだ動的なインテリセンス解析が改善の余地ありですね。 いずれにしても愛用者も多いわけで、素晴らしい!!