2012-04-16 2 views
2

PowerShell 창이 나타나면 컴퓨터가 종료되는 것을 방지 할 수 있습니다 (PowerShell 명령 프롬프트에서).PowerShell 창이 시스템 종료를 방지합니다.

e.e. PowerShell 창을 열고 서버를 종료하려고하면 Windows에서이 프로그램을 끝낼 수 없다는 최종 프로그램 팝업이 표시됩니다.

시작 메뉴, cmd 프롬프트 및 -NoExit이 지정된 바로 가기에서 PowerShell을 시작하면 동일한 결과가 나타납니다.

PowerShell 창 (PowerShell 프롬프트에있는 경우)을 CMD 창과 동일한 방식으로 자동 종료하도록 종료하려면 어떻게해야합니까?

또는 PowerShell이 ​​종료가 시작될 때이를 감지하여 종료 할 수 있습니까?

답변

2

이 질문은, 그래서 여기에 Server Fault에 응답 내 솔루션 테스트 코드가되었습니다 : 작동하는 것 같다

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" 

.