2009-05-04 21 views
30

私はPowerShellで開始するためのスクリプトを作成しています。リモートのWindowsコンピュータでマップされたネットワークドライブを列挙するworking VBScript scriptを変換しようとしています。PowerShellで出力パラメータを使用してメソッドを呼び出す方法は?

リモートのWMIを使用してレジストリを読み取り、ログインしたユーザーを特定するためにexplorer.exeのプロセス所有者を見つけることです。これは、this guideで十分に簡単です。

ただし、呼び出す必要があるWMIメソッドはGetOwner() from Win32_Processです。戻り値を格納するには2つの出力パラメータが必要です。

出力パラメータでメソッドを呼び出すにはどうすればよいですか? 2つの文字列を入力しようとすると、エラー:Cannot find an overload for "GetOwner" and the argument count: "2".が返されます。 MSDNのページには2つのパラメータがあるため、私が間違っていることはわかりません。

答えて

9
$explorer = gwmi Win32_Process -computerName computerName -filter "Name='explorer.exe' and SessionID=0" 
$explorer.GetOwner() | select user,domain 
+0

スウィート[参照]修飾子を使用して! – spoulson

+1

私はできれば二重引用符を与えたい。これはより良いアプローチですが、残念ながら主な質問とは一致しないので、私はこれを受け入れられた答えとして割り当てることはできません。 PS> $ explorer.GetOwner.OverloadDefinitions System.Management.ManagementBaseObject GetOwnerメソッド() – spoulson

+0

は、私はあなたが言及した過負荷を示していないメソッドのシグネチャが、何かが欠けていてもよいです。 Win32_Processのドキュメントに2つの出力パラメータが表示されているがPowershell経由では何も受け付けていないという理由は分かりません。 Powershellは単に出力パラメータを出力セットとしてリダイレクトしますか? –

関連する問題