如何将Get-WMIObject属性传递给变量

时间:2016-03-08 16:10:54

标签: powershell variables get-wmiobject

我目前正在尝试查找在客户端计算机上运行的命令行,如果找到运行该脚本的命令行,我需要终止该进程ID。这是我目前所拥有的,但我有点迷失了杀死ParentProcessID的好方法。

您可以在我的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
    }

 }

我是如何实现这一目标的?

1 个答案:

答案 0 :(得分:0)

在PowerShell中(与传统的shell不同) - 一切都是包装的.NET对象。

这意味着您可以使用Select-Object运算符

引用使用.选择的属性
$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
    }
 }