2012-04-16 20 views
2

PowerShellウィンドウ(PowerShellコマンドプロンプトで)が表示されている場合、コンピュータがシャットダウンしません。PowerShellウィンドウがシャットダウンを防止する

I.e. PowerShellウィンドウを開いてサーバーをシャットダウンしようとすると、Windowsがこのプログラムを終了できないというEnd Programポップアップが表示されます。

スタートメニュー、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" 

動作するように思われます。

関連する問題