【PowerShell】PCを再起動・シャットダウンする方法|Restart-Computer

PowerShell

PowerShellでは、コマンドを使ってWindowsパソコンを再起動したり、シャットダウンしたりできます。
PCを再起動する基本的なコマンドは、次のとおりです。

Restart-Computer
シャットダウンする場合は、次のコマンドを使用します。
Stop-Computer
また、-Forceを付けて強制的に再起動したり、-ComputerNameを使ってリモートPCを再起動したりすることもできます。

この記事では、PowerShellを使ってPCを再起動・シャットダウンする方法を、サンプルコードを使って分かりやすく解説します。

PowerShellでPCを再起動する

PowerShellからPCを再起動する場合は、Restart-Computerコマンドレットを使用します。
基本的な書き方は次のとおりです。

Restart-Computer
このコマンドを実行すると、現在使用しているローカルPCが再起動されます。
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"
複数のPCを指定することもできます。
Restart-Computer -ComputerName "Server01", "Server02"
Microsoft公式ドキュメントでも、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
コマンドを実行するとPCがシャットダウンされます。

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-ComputerStop-Computerの基本的な使い方を覚えておきましょう。

タイトルとURLをコピーしました