If I have a PowerShell window (at the PS 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 the powershell from the start menu, from a cmd prompt and from a shortcut with -NoExit specified.
Any ideas how I can get shutdown to automatically close a powershell window (if it is at the PS 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?
Update:
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