所以我试图在机器上返回一个正在运行的进程列表的说明,我可以通过get-process | select description
然而,当我尝试:get-process -computer remote | select description
没有返回任何内容,只返回空字符串。
这是否有原因?
由于
答案 0 :(得分: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属性。此属性仅适用于在本地计算机上运行的进程。
因此,远程进程无法检索描述。
答案 1 :(得分: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 }}
答案 2 :(得分:0)
在尝试使用get-process
后,我编写了以下脚本,以通过远程会话显示“可查看”内容
get-process -computer computer |选择* |其中{$ _。name -match“tskmgr”}