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在以下情况下抛出 a:

您正在尝试访问在远程计算机上运行的进程的 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我编写了下面的脚本来显示它通过远程会话“可见”的内容

获取进程-computer 计算机| 选择 * | 其中 {$_.name -match "tskmgr"}

于 2012-07-26T08:47:50.403 回答