業務改善!Windows PowerShell入門

Windows PowerShellで、とにかく楽をしたい!実際に仕事で楽になった事、便利になった事を紹介しつつ進めていきます。

PowerShell シャットダウンを確実にしろ!

 

その日、俺は急いでいた。
一日の仕事を終えると、速攻でノートPCのシャットダウンをかけ、あばよ!と帰ったのである。

 

はよ帰って何をやったのかは、ここでは無関係なので、省略する。

 

次の日。仕事場に着き、ノートPCを開いた。

 

 

「シャットダウンされとらんやないけ!このクソボケが。」

 

 

という経験が、過去に誰しも一度くらいはあるのではなかろうか?!

 

ここで、シャットダウンが確実にされなかった原因についての考察をしてみる。

 

・シャットダウンが確実にされるのを見届けなかった。
(もし、見届ける意思があるならば、途中で異変に気付くはずである。)

 

・何か未保存のアプリがあって、終了確認の表示が出たままとなって、シャットダウン処理に移行できなかった。

 

まあ、こんなところだろう。
しかし!正直な話、見届るけなんてダルいことはクソめんどくせえゼ!

さらに、シャットダウンをしようとした直後、「バックグラウンドプログラムの終了を待機しています」という表示が出ることもあって、「はよせんか!この野郎」と思うこともある。

 

よって、これらの問題点、イライラ解消をするために、俺は立ち上がったのである!

PowerShellスクリプトにより、即時強制シャットダウン実行をさせるのである。
Stop-Computerコマンドレットというものが、PowerShellにはあり、これでシャットダウン処理ができるのである。


そして、何があろうが問答無用で確実に強制実行する。

 

▼ソースはこれ

#--------------------------------
# 処理名:即時強制シャットダウン
#--------------------------------
$WS = New-Object -com WScript.Shell
$result = $WS.Popup("即時強制実行するか?",0,"即時強制シャットダウン",4)

#実行確認(はい:6、いいえ:7)
If($result -eq 7){Exit}

#予告
Write-Host "1秒後に即時強制実行する!"
Start-Sleep -s 1

#即時強制シャットダウンの実行
Stop-Computer -force
COMオブジェクト WScript.ShellのPopupメソッドを利用し、実行確認をする。
Stop-Computerコマンドレットのスイッチパラメータ forceで強制処理が可能となる。

 

▼確認処理で「いいえ」を選ぶと、処理抜け。

「はい」を選べば予告メッセージの後に強制実行される。

 

f:id:acoustic_groove:20171120230639p:plain

 

f:id:acoustic_groove:20171120230640p:plain

 

しこうして、俺のイライラは無事に解消されたのであった。

 

PowerShell、イエーイ!