我知道这是一个非常糟糕的主意。但我有一个检查僵尸进程的脚本,我想测试它。目前,它着眼于跨不同机器的两个独立进程。如果它们的父进程 ID 不存在,它会回显主机名和 PID。我认为它工作正常;但我总是喜欢通过测试来确认我的脚本。有什么方法可以确认它工作正常吗?我想创建一个僵尸进程;但我不知道这是否是最好的方法(我也不知道如何以可控的方式轻松创建一个)。这是我写的脚本:
$m = "System1 System2 System3"
$zombies
foreach($a in $m.split(" "))
{
$pros = Get-WmiObject -Class Win32_Process -Namespace root/cimv2 -ComputerName $a
$pids = @()
foreach($pro in $pros)
{
$pids += $pro.ProcessId
}
foreach($pro in $($pros | Where-Object {$_.Name -eq "Proc1.exe" -or $_.Name -eq "Proc2.exe"}))
{
if($pids -notcontains $pro.ParentProcessId)
{
$zombies += "HOST: $(pro.MachineName) PID: $($pro.ProcessId)"
}
}
}
foreach($zombie in $zombies)
{
Write-Output $zombie
}