2010-12-07 16 views
5

Kann in Powershell festgestellt werden, ob es sich um eine verschachtelte Shell handelt?Wie erkennt man die Powershell-Verschachtelung in Powershell?

Wenn ich ein Powershell oder cmd.exe Fenster zu öffnen, und geben Sie dann powershell <eingeben> dort gibt es eine magische $ host.somevariable ich abfragen kann, um herauszufinden, ob es sich um eine „innere“ Shell ist?

Antwort

7

Es gibt keine solche magische Variable, wahrscheinlicher. Aber es ist möglich, diese Informationen zu erhalten:

$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

Gut genug für mich, danke! – scobi

Verwandte Themen