Powershell:Get-Process不会返回远程描述

时间:2012-07-23 12:41:28

标签: powershell

所以我试图在机器上返回一个正在运行的进程列表的说明,我可以通过get-process | select description

来解决问题

然而,当我尝试:get-process -computer remote | select description没有返回任何内容,只返回空字符串。

这是否有原因?

由于

3 个答案:

答案 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”}