2009-09-01 12 views
1

PowerShell スナップインがインストールされているかどうかを知ることができる方法があるかどうかを知りたいと思います。どのPowerShellスナップインがインストールされているかをプログラムで判断する方法

私はWMIやPowerShellスクリプトを書いてC#にリストを返すなどと言ってもいいでしょうが、どこかで行う方法があります。

ありがとうございました。

答えて

2

私は、これはそれを行うための最適な方法であるのかはわからないが、実行空間の構成例えば、デフォルトを見てみましょう:

手そうYMMVでコンパイル
using System.Linq; 
using System.Management.Automation; 
using System.Management.Automation.Runspaces; 

var cmdlets = Runspace.DefaultRunspace.RunspaceConfiguration.Cmdlets; 
var snapins = (from cmdlet in cmdlets 
       select new { cmdlet.PSSnapin.Name }).Distinct(); 

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\PowerShellSnapIns 

それとも、C#コードからGet-PSSnapin -Registeredを呼び出し、返されたPSSnapInInfoオブジェクトを処理することができます:

は、このレジストリキーの内容を列挙し、代わりにロードされたの、SNAPINSがインストールされている参照してください。

+0

こんにちはキース、 私はそれをテストします。おかげさまで ボブ。 –

+0

キース、残念ながらそれは動作しません。このスクリプトは、固定されていると、ランスペースを開いたときにランスペースにロードされている現在のスパンのみを表示します。 PowerShellの一部であるものを効果的にインストールします。 努力をいただきありがとうございます。 ボブ。 –

+0

ああ、その場合は、regkeyの内容を列挙するだけです。HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ PowerShellSnapIns –

関連する問題