所以我试图在一台机器上返回一个正在运行的进程的描述列表,我可以通过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
在以下情况下抛出 a:
您正在尝试访问在远程计算机上运行的进程的 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
我编写了下面的脚本来显示它通过远程会话“可见”的内容
获取进程-computer 计算机| 选择 * | 其中 {$_.name -match "tskmgr"}