Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

コマンドプロンプトでWindowsをシャットダウン・再起動する方法【shutdownコマンド完全ガイド】

shutdownコマンドとは

Shutdown.exeは、Windowsに標準搭載されているコマンドラインツールです。コンピュータのシャットダウンや再起動はもちろん、スリープ、休止状態への移行、ユーザーセッションの終了(ログオフ)まで、さまざまな操作をコマンド1つで実行できます。

このガイドでは、Windowsでshutdownコマンドを使う基本的な例を紹介します。ここで説明するコマンドはすべて、「ファイル名を指定して実行」ダイアログ(Win + R)、コマンドプロンプト(cmd.exe)、またはPowerShellから実行可能です。

shutdownコマンドの基本構文は以下の通りです。

shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]

ご覧のとおり、このコマンドには多数のオプションが用意されており、ローカルコンピュータだけでなく、リモートコンピュータのシャットダウンや再起動にも利用できます。

コマンドプロンプトでWindowsをシャットダウンする方法

Windowsをシャットダウンするには、shutdownコマンドに/sオプションを付けて実行します。

shutdown /s

CMDからWindowsを再起動する

コンピュータを再起動するには、/rパラメータを使用します。実行すると、Windowsは正常な手順で再起動されます。

shutdown /r

ユーザーセッションを終了する(ログオフ)

現在のユーザーセッションを終了するには、次のコマンドを実行します。

shutdown /l

このコマンドは、logoff.exeコマンドと同じ動作を行います。

Windowsを休止状態にする方法

コンピュータを休止状態にするには、次のコマンドを実行します。

shutdown /h

休止状態では、メモリの内容がすべてローカルディスク上のhiberfil.sysファイルに書き込まれた後、コンピュータはスリープモードに移行し、消費電力が大幅に抑えられます。

シャットダウン・再起動前にログオンユーザーへ通知する方法

すべてのアクティブなセッションにメッセージを送信することで、コンピュータやサーバーのシャットダウン・再起動が近づいていることを、ログオン中の全ユーザーに通知できます。この機能は、複数のユーザーがそれぞれのRDPセッションで同時に作業しているRDSサーバーで特に役立ちます。

shutdown /r /c "このサーバーは60秒後に再起動されます。"

タイマーを使った遅延シャットダウン・再起動

/tオプションを使えば、指定した時間が経過した後にシャットダウンや再起動を実行できます。ユーザーが開いているファイルを保存し、アプリケーションを正しく終了するための猶予時間を設けられるため、通知メッセージと組み合わせて使うのが便利です。以下の例では、10分(600秒)後にシャットダウンすることをユーザーに通知しています。

shutdown /s /t 600 /c "サーバーは10分後にシャットダウンされます。作業を保存してください!"

ユーザーには、予定されたシャットダウンを知らせる次の通知が表示されます。

サインアウトしようとしています

遅延時間が長い場合(例:100分=6,000秒)は、画面右下に「サインアウトしようとしています。Windowsは100分後にシャットダウンされます。」というポップアップが表示されます。

シャットダウン・再起動をキャンセルする方法

シャットダウンや再起動のコマンドを実行すると、shutdownツールはデフォルトで60秒間待機します。この待機時間内であれば、管理者は次のコマンドでシャットダウン・再起動をキャンセルできます。

shutdown /a

キャンセルに成功すると、画面右下に「ログオフがキャンセルされました。予定されていたシャットダウンは取り消されました。」というポップアップが表示されます。

コンピュータを即座に強制再起動する

60秒の待機時間なしで即座にシャットダウン・再起動するには、/tパラメータに0を指定します。例えば、即時再起動するには次のように実行します。

shutdown /r /t 0

/fオプションも非常に重要です。Windowsサーバーをシャットダウン・再起動する際には、ほぼ常に使用しています。このオプションを付けると、ユーザーの確認なしに実行中のすべてのプログラムとプロセスを強制終了できます(RDSサーバーでは、全ユーザーがアプリケーションを閉じるのを待つことは現実的ではないためです)。

また、次のコマンドを使うと、再起動後にRegisterApplicationRestart APIで登録されたアプリケーションが自動的に再起動されます。

shutdown /g

リモートでWindowsをシャットダウン・再起動する方法

リモートコンピュータへのネットワークアクセスがあり、コマンド実行に使うアカウントがリモートコンピュータ(サーバー)のローカルAdministratorsグループに所属していれば、リモートからの再起動が可能です。

shutdown /r /t 120 /m \\192.168.1.210

条件をすべて満たしているのに「アクセスが拒否されました(5)」というエラーが表示される場合は、リモートコンピュータ側でLocalAccountTokenFilterPolicyの値を1に変更し、管理共有(C$、ADMIN$)へのリモートアクセスを許可してください。

reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f

複数のコンピュータをまとめてリモート再起動したい場合は、対象のコンピュータ名をテキストファイルに保存し、次のような簡単なPowerShellスクリプトで一括実行できます。

$sh_msg = "お使いのコンピュータは10分後に自動的に再起動されます。ファイルを保存し、実行中のアプリを終了してください"
$sh_delay = 600 # 秒
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
{
& 'C:\Windows\System32\SHUTDOWN.exe' "-m \\$comp -r -c $sh_msg -t $sh_delay"
}

shutdownコマンドのGUI(グラフィカルインターフェース)

コマンドライン操作が苦手な方は、shutdown.exeのグラフィカルインターフェースを利用できます。リモートシャットダウンのダイアログを表示するには、次のコマンドを実行します。

shutdown /i

このダイアログでは、再起動・シャットダウン対象のコンピュータを複数追加したり、通知メッセージを指定したり、Windowsイベントログに記録されるシャットダウンの理由を選択したりできます。

ショートカットで再起動・シャットダウンする方法

利便性を高めるために、デスクトップに任意の設定で再起動・シャットダウンを実行するショートカットを作成しておくのもおすすめです。特に、スタートメニューから再起動やシャットダウンの項目が選べないRDPセッション環境では重宝します。

さらに、指定した時刻にコンピュータやサーバーを自動的に再起動・シャットダウンしたい場合は、shutdownコマンドをWindowsタスクスケジューラ(taskschd.msc)に登録しましょう。

例えば、次のタスクは毎日午前0時にコンピュータを再起動します。

タスクスケジューラのタスクは、PowerShellから作成することも可能です。

$Trigger= New-ScheduledTaskTrigger -At 00:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "–f –r –t 120"
Register-ScheduledTask -TaskName "RebootEveryNight_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

  1. Windows 7でコマンドプロンプト(CMD)を使ってPCをリモートシャットダウンする方法

    パソコンを「リモート」でシャットダウンできると、急いでいるときなどに非常に便利です。わざわざその場まで移動しなくても、別の場所からシステムの電源を切ることができます。 ただし、実際にリモート操作を始める前に、まず押さえておくべき基本条件があります。 リモートシャットダウンに必要な前提条件 対象となるコンピューターの管理者権限が必要です。 ホームネットワークの場合は、すべてのコンピューターが同じワークグループに所属していること、そして同じ資格情報(ユーザー名とパスワード)を持つ管理者アカウントが設定されていることを確認してください。 対象コンピューターの正式なコンピューター名またはIPアドレス

  2. Windows 7でコマンドプロンプト(CMD)を使ってUSBメモリをフォーマットする方法

    ペンドライブ、USBメモリ、フラッシュドライブ、メモリスティック——呼び方はさまざまですが、いずれも大切なデータを手軽に持ち運べる便利なポータブルデバイスです。 他の機器と同じように、こうした小型デバイスも正常に動作させ続けるためには、定期的なフォーマットが必要になります。多くの人は昔ながらの方法、つまり対象のドライブを右クリックして「フォーマット」を選択するやり方を試すでしょう。 しかし、その処理が途中で止まってしまったり、最悪の場合はエラーが表示されたりすることもあります。実際、このようなトラブルはかなり頻繁に発生します。でも安心してください。もっと確実な方法が必ずあります。それが「コマン