PowerShell使用Get-WmiObject-类Win32\u进程获取进程id

PowerShell使用Get-WmiObject-类Win32\u进程获取进程id,powershell,powershell-4.0,Powershell,Powershell 4.0,上面的代码获取有关进程的所有信息,但并没有明确的id。 我在帖子中发现,您可以使用$procid=get process appname | select-expand id获取进程id,但这不起作用 获取错误:get process:找不到名为“SomeApp.exe”的进程。验证进程名称并再次调用cmdlet。是否查找了ProcessId字段?如果你想看到所有的进程属性,你可能想做$process | Format List*。我觉得这太愚蠢了。感谢您的错误,可能没有运行该名称的任何东西?您

上面的代码获取有关进程的所有信息,但并没有明确的id。 我在帖子中发现,您可以使用
$procid=get process appname | select-expand id
获取进程id,但这不起作用


获取错误:
get process:找不到名为“SomeApp.exe”的进程。验证进程名称并再次调用cmdlet。

是否查找了ProcessId字段?如果你想看到所有的进程属性,你可能想做$process | Format List*。我觉得这太愚蠢了。感谢您的错误,可能没有运行该名称的任何东西?您可以使用通配符进行如下搜索:get-process“*someapp*”我对get-object和get-process使用了相同的变量,其中一个有效,另一个无效get-process有效,我一直在使用它。您可能需要修改名称和筛选。顺便说一句,您可以使用get process获得完整的流程列表,然后查看它报告的名称。很可能结尾没有“.exe”。别问我为什么,事情就是这样。
[cmdletbinding()]
param(
    $ComputerName=“comecomputer”,
    $ProcessName = "SomeApp.exe"
     )
$Processes = Get-WmiObject -Class Win32_Process -ComputerName $ComputerName -Filter "name='$ProcessName'"

foreach ($process in $processes) 
{ 
    $process
}