查找启动Powershell过程的原因

时间:2018-08-18 06:32:56

标签: powershell

我有一个Windows 2016域控制器,每次修补并重新启动服务器时,PowerShell进程就会启动并消耗100%的内存(CPU正常)。

我唯一能做的就是杀死进程(如果可以RDP的话)或重新启动服务器,然后在进程开始之前迅速跳到服务器上。

我如何找出启动Powershell程序的原因并找出其作用?

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以查询wmi以确定进程详细信息:

$ServerName = Read-Host -Prompt ComputerName
$gwmiArgs = @{
    Class        = 'Win32_Process'
    ComputerName = $ServerName
    Filter       = 'Name = "powershell.exe"'
}
$details = Get-WmiObject @gwmiArgs

foreach ($process in $details)
{
    $owner = $process.GetOwner()
    $owner = if ($owner.Domain)
    {
        '{0}\{1}' -f $owner.Domain, $owner.User
    }
    else
    {
        $owner.User
    }

    @"
Process:     powershell.exe
Owner:       $owner
PID:         $($process.ProcessId)
CommandLine: $($process.CommandLine)
"@
}