Debugging other PowerShell processes
A PowerShell developer can make use of Enter-PSHostProcess to debug a script running in a different PowerShell process.
The Enter-PSHostProcess command creates a remote runspace inside an existing PowerShell process.
Demonstrating use requires two PowerShell processes. The first PowerShell process is started, and for convenience, the PID of that process is shown.
A simple infinite loop is started after setting the window title to show the current PID:
$host.UI.RawUI.WindowTitle = 'Script runner: {0}' -f $PID
$i = 0
while ($true) {
Write-Host "Working on $i"
$i++
Start-Sleep -Seconds 30
}
In the example that follows, the first process showed a PID of 14504 and is used to connect to that process. This PID will be different in each case.
A second process is started and the Enter-PSHostProcess command is used to connect to the original PID. The prompt will change to reflect the connection to...