batファイルを使用してWindowsをシャットダウン、再起動、またはログオフするにはどうすればよいですか?


660

リモートデスクトップ接続を使用してワークステーションにアクセスしています。しかし、この環境では、スタートメニューの電源オプションを使用できません。シャットダウンまたは再起動する別の方法が必要です。

コマンドラインからコンピューターの電源状態を制御するにはどうすればよいですか?

回答:


1165

shutdownコマンドを使用する最も一般的な方法は次のとおりです。

  • shutdown -s —シャットダウンします。
  • shutdown -r —再起動します。
  • shutdown -l —ログオフします。
  • shutdown -h —休止状態。

    注:ユーザーが-h「ヘルプ」を意味するという一般的な落とし穴があります(他のすべてのコマンドラインプログラムで使用されます...を除きshutdown.exe、「休止状態」を意味します)。彼らはそれから走ってshutdown -h、そして偶然に彼らのコンピュータをオフにします。気をつけて。

  • shutdown -i—「インタラクティブモード」。アクションを実行する代わりに、GUIダイアログを表示します。

  • shutdown -a —以前のシャットダウンコマンドを中止します。

上記のコマンドは、次の追加オプションと組み合わせることができます。

  • -f—プログラムを強制的に終了します。シャットダウンプロセスがスタックしないようにします。
  • -t <seconds>—シャットダウンまでの時間を設定します。-t 0すぐにシャットダウンするために使用します。
  • -c <message>—シャットダウンメッセージを追加します。メッセージは最終的にイベントログに記録されます。
  • -y —すべてのシャットダウンクエリに対して「はい」の回答を強制します。

    注:このオプションは、公式ドキュメントには記載されていません。これらのStackOverflowユーザーによって発見されました。


他にも本当に良い答えがいくつか紹介されていることを確認したいと思います。ここでは、それらは特定の順序ではありません。


188
次の回答で-f(強制)の使用について読んでください。しなかったが今週末に惑星の反対側でシャットダウン時にコンピューターが動かなくなった男(:
pasx

11
+1の/<switch>代わりに私が使用したもの-<switch>。ヘルプセクションでもを使用してい/ます。
legends2k 14

私の経験:(OPが言及しているように)リモートデスクトップで-sオプション(シャットダウン)を使用すると、リモートデスクトップが終了するだけで、リモートマシンはそのままになります。
Heri 2014

3
リモートマシンには「-r」を使用します。したがって、再起動し、手動による介入は必要ありません。
granadaCoder

6
リモートマシンを使用している場合は-f、強制的に再起動するオプションを追加することもできます。そうしないと、セッションが終了し、頑固なアプリがシステムをハングさせる可能性があります。すぐに再起動を強制しますshutdown -t 0 -r -f。より親しみやすい「時間を与える」オプションについては、これを使用できますshutdown -t 30 -r。これ-fは、タイムアウトによって暗示されます。(Mateusz Koniecznyによる編集案から)
Ole VV

375

リモートマシンを使用している場合は、-fオプションを追加して強制的に再起動することもできます。そうしないと、セッションが終了し、頑固なアプリがシステムをハングさせる可能性があります。

私はすぐに再起動したいときにこれを使用します:

shutdown -t 0 -r -f

より友好的な「時間を与える」オプションについては、これを使用できます。

shutdown -t 30 -r

コメントでわかるように、-fはタイムアウトによって暗示されます。

Brutus 2006は、これらのオプションのGUIを提供するユーティリティです。


15
Windows 8.1でのシャットダウンのヘルプを読むと、「タイムアウト期間が0より大きい場合、/ fパラメータが暗黙的に示されます。」デフォルトのタイムアウトは30秒なので、クリーンシャットダウンの時間を確保し、タイムアウト後に強制シャットダウンを実行することをお勧めします。
Zitrax 2014

2
それは良い点です。これを書いたとき、私が使用していたOSはWindows XPだったと思います。「/ fは暗黙に示されている」という発言がWindows 7にもあるようです。それに応じて例を変更しました。
JosephStyons 2014

2
デフォルトでは30秒です。私は即時に使用します:shutdown / r / t 0および友好的に使用します:shutdown / r
dzampino

81

-mリモートシャットダウンのオプションについては誰も言及していません。

shutdown -r -f -m \\machinename

また:

  • この-rパラメーターは再起動を引き起こします(これは通常、物理的に起動するのが難しいため、リモートマシンで必要な操作です)。
  • -fパラメータオプションは、再起動を強制します。
  • もちろん、リモートマシンをシャットダウンするには、適切な権限が必要です。

2
マシン名をIPアドレスにできますか?つまり、インターネットでこれを行うことができますか?
mcmillab 2016年

経由でマシンにアクセスできる場合\\IP.AD.DR.ESS(つまり、必要なポートが開いていて、必要な権限がある場合)、はい、これはインターネット経由で機能するはずです。
ティモシーゾーン2017年

最初に-rのみを使用してみましたが、リモートシャットダウンが必要だったため、機能しませんでした。shutdown -r -mで動作しました。-fは必要ありませんでした。
Dchris 2017年

38

元の回答:2008年10月

あなたもすべてを得ました rundll32.exe shell32.dll セリエ:

(以下の更新を参照)

  • rundll32.exe user.exe,**ExitWindows** [Windowsの高速シャットダウン]
  • rundll32.exe user.exe,**ExitWindowsExec** [Windowsを再起動します]

    rundll32.exe shell32.dll,SHExitWindowsEx n
    

は次のn意味です:

  • 0- LOGOFF
  • 1- SHUTDOWN
  • 2- REBOOT
  • 4- FORCE
  • 8- POWEROFF

(組み合わせ可能-> 6 = 2 + 4 FORCE REBOOT


2015年4月の更新(6年以上後):

1800情報はコメントで親切に指摘しています

rundll32.exeこの目的には使用しないでください。コマンドラインで渡した関数には、非常に具体的なメソッドシグネチャが必要ですExitWindows。これは、のメソッドシグネチャと一致しません。

レイモンド・チェンは書いている:

によって呼び出される関数に必要な関数シグネチャrundll32.exeは次のとおりです。

void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
       LPSTR pszCmdLine, int nCmdShow);

それは使用してから人々を停止していませんrundll32で呼ばれるように設計されていないランダムな関数を呼び出すためにrundll32、同様user32 LockWorkStationまたはuser32 ExitWindowsEx

(おっとっと)

ExitWindowsExの実際の関数シグネチャは次のとおりです。

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

そしてそれを明確にするために:

Rundll32 はWindows 95の残物であり、最新のエンジニアリングガイドラインの多くに違反しているため、少なくともWindows Vista以降は非推奨になっています。


3
シャットダウンとパワーオフの違いは何ですか?
Asdfg 2012年

17
@Asdfg今日?無し。NT4以前では、マザーボードは常に電源オフをサポートせず、シャットダウンのみをサポートしていました(Windowsは完全に閉じていましたが、PCはまだ電力が供給されていました)。(ハードウェアがその時点でそれをサポートしていた場合)パワーオフのみがウィンドウ閉じ、電力カットしました。現在、シャットダウンとパワーオフの両方でこれが行われます。
VonC、2012年

2
この目的でrundll32.exeを使用しないでください。コマンドラインで渡した関数には、非常に具体的なメソッドシグネチャが必要です。ExitWindowsのメソッドシグネチャとは一致しません。
1800情報

2
@ 1800INFORMATION非常に良い点。これが有効なオプションではないことを明確にするために、回答を書き直しました。
VonC、2015

3
ただし、公平に言うと、PCをすぐにシャットダウンした場合に、どのような種類のメモリリークやスタックの破損が発生しているかは問題ではありません。
PRMan 2015年

10

もう1つの小さなヒント:バッチファイルルートを実行するときに、誤って実行した場合に備えて、バッチファイルを中止できるようにしたいと思います。そのため、バッチファイルはシャットダウンを呼び出しますが、その後、コマンドプロンプトに移動します。

@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r

さらに、タイマーがオンになっているため、オレゴントレイルで狩りをするときと同じスリルを味わえます。


1
バスファイルに一時停止を入れてから、コマンドを中止することができます。このような中止シーケンスは任意のキーになります
rsk82

@ rsk82、何かを入力するのをうまくやれることは、オレゴントレイルの私のTRS-80コピーの不幸な制限でもありましたが、率直に言って、私はいつもそれが不正行為だと考えていました。ただ言う:なぜ私の兄弟を怒らせたいのですか?
Gavinが2014年

7

マシンにリモート接続している場合(ターゲットはWindows XPです。ターゲットWindows Vistaについてはわかりません)、スタートメニューのシャットダウン[ セッションの切断 ]などに置き換えられますが、 'Windowsセキュリティ'と呼ばれるものも必要です。オーウェンが指摘したCtrl+ Alt+ と同じですEnd


以前はその方法を使用していましたが、機能しなくなりました。コマンドラインでは機能します。
user742864 2016

また、RDPで機能するシャットダウン、再起動、休止状態、ロック用のボタンが付いたガジェットもあります。
user742864

7

あなたはおそらくこれに気づいているかもしれませんが、念のために言えshutdown -rば、「実行」ボックスに(または好きなコマンドを)入力してEnterキーを押す方がはるかに簡単です。

バッチファイルをいたるところに置いておくことを節約します。


うん...ダブルクリックでそこに座ってみたい...それが-r batファイルの目的でもある; o)
Keng

17
プログラムに入れないように注意してください
Dean Rather

コードがshutdown.batファイルに配置されている場合、奇妙な動作が発生します。それを試してみてください!:)....
Brethlosze

6

これを基本的なログオフコマンドとしてメモ帳またはワードパッドで記述します。

@echo off
shutdown -l

これは基本的に手動で[開始]および[ログオフ]をクリックするのと同じですが、バッチファイルの準備ができている場合はわずかに速くなります。


5

私はパーティーに遅れましたが、まだこの答えを見ていません。バッチファイルを使用したくない場合、またはコマンドを入力したくない場合。デスクトップにフォーカスを設定し、Alt+ を使用するだけF4です。

Windowsは何をしたいかを尋ねてきます。シャットダウンまたは再起動を選択してください。

スクリーンショットやビデオについては、https//tinkertry.com/how-to-shutdown-or-restart-windows-over-rdpをご覧ください。


3
@Keng、実際の問題「スタートメニューのシャットダウン/再起動機能を使用できない」を読んで、それを行う方法を知りたいようです。コマンドラインとキーボードは別のソリューションです。これは、この質問に出くわして、シャットダウンまたは再起動する簡単なソリューションを必要とする他のユーザーを助ける場合があります。
msoft 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.