# Copied from GStreamer project # Author: Seungha Yang # Xavier Claessens $i=1 $ppid=$PID do { $ppid=(Get-CimInstance Win32_Process -Filter "ProcessId=$ppid").parentprocessid $pname=(Get-Process -id $ppid).Name if($pname -eq "cmd" -Or $pname -eq "powershell" -Or $pname -eq "pwsh") { Write-Host ("{0}.exe" -f $pname) Break } # not found yet, find grand parent # 10 times iteration seems to be sufficient $i++ } while ($i -lt 10)