如何在Powershell中检测Powershell嵌套?

时间:2010-12-07 19:01:17

标签: powershell

是否可以从Powershell中检测它是否是嵌套的shell?

如果我打开Powershell或cmd.exe窗口,然后键入powershell< enter>在那里,是否有一个神奇的$ host.somevariable我可以查询,看看它是否是一个“内部”shell?

1 个答案:

答案 0 :(得分:7)

没有这样一个神奇的变量,更有可能。但是可以获得这些信息:

$me = Get-WmiObject -Query "select * from Win32_Process where Handle=$pid"
$parent = Get-Process -Id $me.ParentProcessId
if ($parent.ProcessName -eq 'powershell') {
    'nested, called from powershell'
}
elseif ($parent.ProcessName -eq 'cmd') {
    'nested, called from cmd'
}
else {
    'not nested'
}