If I have a PowerShell window (at the PowerShell command prompt) on display it prevents the computer shutting down.
I.e. if I open a PowerShell window and then try to shutdown the server, I get the End Program popup saying Windows cannot end this program.
I get the same result if I start PowerShell from the start menu, from a cmd prompt and from a shortcut with -NoExit specified.
How can I get shutdown to automatically close a PowerShell window (if it is at the PowerShell prompt) in the same way as it would for a CMD window?
Alternatively, is it possible for PowerShell to detect when a shutdown has been initiated and therefore close itself?
Going down the alternative route as suggested by pk, I have come up with this test code:
Write-Host "PowerShellBlockingShutdown.ps1 Started" $global:shuttingDown = $false $sysevent = [microsoft.win32.systemevents] Register-ObjectEvent -InputObject $sysevent -EventName "SessionEnding" -Action {$global:shuttingDown = $true; Write-Host " SessionEnding"} Register-ObjectEvent -InputObject $sysevent -EventName "SessionEnded" -Action {$global:shuttingDown = $true; Write-Host " SessionEnded"} do { Start-Sleep -Seconds 3 if ($global:shuttingDown) {break} Write-Host " Waiting for Shutdown" } while ($true) Write-Host "PowerShellBlockingShutdown.ps1 Finished" Which seems to work.