如何将Get-WMIObject属性传递给变量
问题描述:
我正在尝试查找在客户端计算机上运行的命令行,并且如果找到运行脚本的命令行,我需要终止该进程ID。这是我目前所拥有的,但是我有点失去了一个杀死ParentProcessID的好方法。如何将Get-WMIObject属性传递给变量
你可以在我的Get-WMIObject中看到,我得到了CommandLine和ParentProcess ID的属性。我可以运行一个foreach,并用一个字符串匹配那些命令行。但在这一点上,我不知道如何传递或链接ParentProcessID属性,所以我可以杀死该ParentProcessID。
$process = "powershell.exe"
$GetCommand = Get-WmiObject Win32_Process -Filter "name = '$process'" |select CommandLine, ParentProcessID
foreach($command in $GetCommand){
If($command -match "MyScript.ps1"){
#kill ParentProcessID
}
}
任何想法,我会做到这一点?
答
在PowerShell中(与传统shell不同) - 所有东西都是一个包装好的.NET对象。
这意味着,可以使用操作者.
$process = "powershell.exe"
$GetCommand = Get-WmiObject Win32_Process -Filter "name = '$process'" |Select-Object CommandLine, ParentProcessID
foreach($command in $GetCommand){
if($command.CommandLine -match "MyScript.ps1"){
Stop-Process -Id $command.ParentProcessID
}
}
'如果($ command.CommandLine -match “MyScript.ps1”){停止进程-Id $ command.ParentProcessID引用所选择的属性与
Select-Object
}' –谢谢Mathias!我不认为我可以这样通过主变量传递属性。哇,我学到了一些新东西。 谢谢。我不确定如何将其标记为已回答,因此您可以获得相应的回报。 – TheInfamousOne
这是PowerShell - 一切都是.NET对象:) –