PowerShellでは、コマンドを使ってWindowsパソコンを再起動したり、シャットダウンしたりできます。
PCを再起動する基本的なコマンドは、次のとおりです。
Restart-Computer
Stop-Computer
-Forceを付けて強制的に再起動したり、-ComputerNameを使ってリモートPCを再起動したりすることもできます。この記事では、PowerShellを使ってPCを再起動・シャットダウンする方法を、サンプルコードを使って分かりやすく解説します。
PowerShellでPCを再起動する
PowerShellからPCを再起動する場合は、Restart-Computerコマンドレットを使用します。
基本的な書き方は次のとおりです。
Restart-Computer
Microsoft公式ドキュメントでも、
Restart-ComputerはローカルコンピューターおよびリモートコンピューターのOSを再起動するコマンドレットとして説明されています。実行環境やユーザーの権限によっては、管理者権限が必要になる場合があります。
その場合は、PowerShellを「管理者として実行」してからコマンドを実行してください。
強制的に再起動する例
通常の再起動で終了できないアプリケーションなどがある場合は、-Forceパラメーターを指定できます。
Restart-Computer -Force
-Forceを指定すると、即時再起動を強制できます。MicrosoftのPowerShellドキュメントでも、強制的に直ちに再起動する方法としてこのコマンドが紹介されています。
ただし、編集中のExcelファイルやWordファイルなど、保存していないデータがある場合は失われる可能性があります。
-Forceを使用する場合は、必要なファイルを保存してから実行してください。
リモートPCを再起動する
Restart-Computerは、自分が操作しているPCだけでなくリモートPCの再起動にも使用できます。リモートPCを指定する場合は、-ComputerNameを使用します。
例えば「Server01」を再起動する場合は次のように記述します。
Restart-Computer -ComputerName "Server01"
Restart-Computer -ComputerName "Server01", "Server02"
ComputerNameには1台または複数のコンピューター名を指定できます。リモートPCの再起動では、対象PCやネットワーク、アカウントなどの環境によって必要な権限や設定が異なるため注意してください。
再起動が完了するまで待つ
サーバーなどを再起動したあと、PowerShellから再び操作できる状態になるまで待ちたい場合があります。
その場合は-Waitなどのパラメーターを利用できます。
例えばMicrosoft公式ドキュメントでは、リモートPCを再起動し、PowerShellが利用可能になるまで最大300秒待機する例として次のような指定があります。
Restart-Computer -ComputerName "Server01" -Wait -For PowerShell -Timeout 300 -Delay 2
-Timeout 300は「300秒後に再起動する」という意味ではないことです。再起動処理を一定時間後に実行するためのタイマーではなく、
-Waitと組み合わせた待機処理で使用されます。PowerShellでPCをシャットダウンする
PCを再起動するのではなく、シャットダウンしたい場合はStop-Computerコマンドレットを使用します。
Stop-Computer
PowerShellから直接シャットダウンできるため、スクリプトからPCを停止したい場合などにも利用できます。MicrosoftのPowerShellドキュメントでも、PCをシャットダウンする方法としてStop-Computerが案内されています。
PCを強制的にシャットダウンする
Stop-Computerにも-Forceを指定できます。
Stop-Computer -Force
通常は、
Stop-Computer
-Forceを使用するとよいでしょう。リモートPCをシャットダウンする
リモートPCを停止する場合も-ComputerNameを使用できます。
例えば「Server01」をシャットダウンする場合は、
Stop-Computer -ComputerName "Server01"
複数のPCを指定する場合は、コンピューター名をカンマで区切ります。
Stop-Computer -ComputerName "Server01", "Server02"
Restart-ComputerとStop-Computerの違い
使い分けは簡単です。
| やりたいこと | コマンド |
|---|---|
| PCを再起動する | Restart-Computer |
| PCを強制的に再起動する | Restart-Computer -Force |
| PCをシャットダウンする | Stop-Computer |
| PCを強制的にシャットダウンする | Stop-Computer -Force |
| リモートPCを再起動する | Restart-Computer -ComputerName "PC名" |
| リモートPCを停止する | Stop-Computer -ComputerName "PC名" |
「再起動ならRestart-Computer」「シャットダウンならStop-Computer」と覚えておけば分かりやすいでしょう。
Restart-Computerが実行できない場合
Restart-Computerを実行しても再起動できない場合は、まずPowerShellを管理者として実行してみてください。
Windowsでは、Restart-Computerによる再起動には、実行ユーザーにシャットダウンに必要な権限が必要です。
また、リモートPCを再起動する場合は、対象PCへのアクセス権限やネットワーク環境なども確認してください。
まとめ
PowerShellでPCを再起動する場合は、Restart-Computerを使用します。
Restart-Computer
Restart-Computer -Force
PCをシャットダウンする場合は、
Stop-Computer
PowerShellを使えば、ローカルPCだけでなく、-ComputerNameを指定してリモートPCを再起動・シャットダウンすることもできます。
PCの再起動をスクリプトに組み込んだり、複数のPCを管理したりするときにも便利なので、まずはRestart-ComputerとStop-Computerの基本的な使い方を覚えておきましょう。
