20 lines
		
	
	
		
			467 B
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			467 B
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| $i=1
 | |
| $ppid=(gwmi win32_process -Filter "processid='$pid'").parentprocessid
 | |
| $pname=(Get-Process -id $ppid).Name
 | |
| While($true) {
 | |
|   if($pname -eq "cmd" -Or $pname -eq "powershell") {
 | |
|     Write-Host ("{0}.exe" -f $pname)
 | |
|     Break
 | |
|   }
 | |
| 
 | |
|   # 10 times iteration seems to be sufficient
 | |
|   if($i -gt 10) {
 | |
|     Break
 | |
|   }
 | |
| 
 | |
|   # not found yet, find grand parant
 | |
|   $ppid=(gwmi win32_process -Filter "processid='$ppid'").parentprocessid
 | |
|   $pname=(Get-Process -id $ppid).Name
 | |
|   $i++
 | |
| }
 |