2010-12-07 27 views
5

是否可以從Powershell內檢測它是否是嵌套shell?如何檢測Powershell內的Powershell嵌套?

如果我打開一個PowerShell或CMD.EXE窗口,然後鍵入powershell <在那裏進入>,有一個神奇的$ host.somevariable我可以查詢,找出它是否是一個「內部」的殼呢?

回答

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' 
} 
+0

對我來說夠好,謝謝! – scobi 2010-12-07 20:19:50