だから私は問題なく実行できるマシンで実行中のプロセスの説明のリストを返そうとしていますget-process | select description
ただし、試してみると、get-process -computer remote | select description
何も返されず、空の文字列のみが返されます。
これには理由がありますか?
ありがとう
だから私は問題なく実行できるマシンで実行中のプロセスの説明のリストを返そうとしていますget-process | select description
ただし、試してみると、get-process -computer remote | select description
何も返されず、空の文字列のみが返されます。
これには理由がありますか?
ありがとう
さて、説明がどのように取得されるかを見ると、すべてがより明確になります。
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プロパティにアクセスしようとしています。このプロパティは、ローカルコンピューターで実行されているプロセスでのみ使用できます。
そのため、リモートプロセスの説明を取得しようとすると失敗します。
たぶん、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 }}
実験した後get-process
、リモートセッションで「表示可能」なものを示すために以下のスクリプトを作成しました
get-process -computer computer | 選択*| ここで、{$_。name-match "tskmgr"}