1

だから私は問題なく実行できるマシンで実行中のプロセスの説明のリストを返そうとしていますget-process | select description

ただし、試してみると、get-process -computer remote | select description何も返されず、空の文字列のみが返されます。

これには理由がありますか?

ありがとう

4

3 に答える 3

7

さて、説明がどのように取得されるかを見ると、すべてがより明確になります。

PS> gps | gm | where {$_.name -eq 'description'} | select Definition


   TypeName: System.Diagnostics.Process

Definition
----------
System.Object Description {get=$this.Mainmodule.FileVersionInfo.FileDescription;}

このアクセスでは、次の場合にProcess.MainModuleドキュメントにがスローされると記載されています。NotSupportedExcetion

リモートコンピューターで実行されているプロセスのMainModuleプロパティにアクセスしようとしています。このプロパティは、ローカルコンピューターで実行されているプロセスでのみ使用できます。

そのため、リモートプロセスの説明を取得しようとすると失敗します。

于 2012-07-23T14:18:27.677 に答える
3

たぶん、WMIとGetVersionInfoメソッドを使用します。

$ComputerName = 'server1'

Get-WmiObject Win32_Process -ComputerName $ComputerName | 
Select-Object Name, @{n='Description';e={ [System.Diagnostics.FileVersionInfo]::GetVersionInfo( ($_.ExecutablePath -replace '^(.):',"\\$ComputerName\$`1$")).FileDescription }}
于 2012-07-23T15:18:36.823 に答える
0

実験した後get-process、リモートセッションで「表示可能」なものを示すために以下のスクリプトを作成しました

get-process -computer computer | 選択*| ここで、{$_。name-match "tskmgr"}

于 2012-07-26T08:47:50.403 に答える