2010-12-07 10 views
5

Est-il possible de détecter à partir de Powershell s'il s'agit d'un shell imbriqué?Comment détecter l'imbrication de Powershell dans Powershell?

Si j'ouvre une fenêtre Powershell ou cmd.exe, puis tapez powershell <entrer> là-dedans, est-il magique host.somevariable de $ je peux interroger pour savoir si elle est une coquille « intérieur »?

Répondre

7

Il n'y a pas de telle variable magique, plus probable. Mais il est possible d'obtenir cette information:

$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

Assez bien pour moi, merci! – scobi