batファイルを使用してWindowsをシャットダウン、再起動、またはログオフするにはどうすればよいですか?
-
03-07-2019 - |
質問
リモートデスクトップ接続を使用してワークステーションにアクセスしました。しかし、この環境では、[スタート]メニューの電源オプションを使用できません。シャットダウンまたは再起動する別の方法が必要です。
コマンドラインを使用してコンピューターの電源状態を制御するにはどうすればよいですか
解決
shutdown
コマンドを使用する最も一般的な方法は次のとおりです。
-
shutdown -s
<!>#8212;シャットダウンします。 -
shutdown -r
<!>#8212;再起動します。 -
shutdown -l
<!>#8212;ログオフします。 -
shutdown -h
<!>#8212;休止状態。注:ユーザーが
-h
は<!> quot; help <!> quot;を意味すると考える一般的な落とし穴があります。 (これは、他のすべてのコマンドラインプログラムに対して実行されます...shutdown.exe
を除き、<!> quot; hibernate <!> quot;を意味します)。その後、shutdown -i
を実行し、誤ってコンピューターの電源をオフにします。気をつけてください。 -
shutdown -a
<!>#8212; <!> quot;インタラクティブモード<!> quot;。アクションを実行する代わりに、GUIダイアログを表示します。 -
-f
<!>#8212;以前のシャットダウンコマンドを中止します。
上記のコマンドは、これらの追加オプションと組み合わせることができます。
-
-t <seconds>
<!>#8212;プログラムを強制終了します。シャットダウンプロセスが停止するのを防ぎます。 -
-t 0
<!>#8212;シャットダウンまでの時間を設定します。すぐにシャットダウンするには-c <message>
を使用します。 -
-y
<!>#8212;シャットダウンメッセージを追加します。メッセージはイベントログに記録されます。 -
rundll32
<!>#8212;強制的に<!> quot; yes <!> quot;すべてのシャットダウンクエリに答えます。注:このオプションは、公式ドキュメントには記載されていません。 これらのStackOverflowユーザーによって発見されました。
この回答とともに、他の本当に良い回答もいくつか紹介したいと思います。ここでは、順序は特にありません。
- <=>オプション JosephStyons から
- <=> の使用 VonC
- 実行ボックス < a href = "https://stackoverflow.com/users/14966/dean">ディーン
- リモートシャットダウン Kip
他のヒント
リモートマシンを使用している場合は、-fオプションを追加して、再起動を強制することもできます。そうしないと、セッションが閉じて、頑固なアプリがシステムをハングさせる可能性があります。
すぐに再起動を強制する場合は常にこれを使用します:
shutdown -t 0 -r -f
より親しみやすい<!> quot;しばらくお待ちください<!> quot;オプション、これを使用できます:
shutdown -t 30 -r
コメントでわかるように、-fはタイムアウトによって暗示されています。
誰もリモートシャットダウンの-m
オプションについて言及していません:
shutdown -r -f -m \\machinename
また:
-
-r
パラメーターは、再起動を引き起こします(物理的に起動するのが難しい場合があるため、通常、これはリモートマシンで必要なものです)。 -
-f
パラメーターオプションは強制的に再起動します。 - もちろん、リモートマシンをシャットダウンするには適切な権限が必要です。
元の回答:2008年10月
また、すべての <!> quot; セリエ:rundll32.exe shell32.dll
<!> quot;
(以下の更新を参照)
-
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
(組み合わせ可能-<!> gt; 6 = 2 + 4 FORCE REBOOT
)
2015年4月更新(6年以上後):
この目的のために
rundll32.exe
を使用しないでください。コマンドラインで渡した関数には、非常に特定のメソッドシグネチャがあることが期待されます-ExitWindows
のメソッドシグネチャと一致しません。
Raymond CHEN は次のように書いています。
- 2004年<!> quot; できること呼び出し規約に一致しない場合は間違っていますか? <!> quot;:
rundll32
によって呼び出される関数に必要な関数シグネチャは次のとおりです。
void CALLBACK ExitWindowsEx(HWND hwnd, HINSTANCE hinst,
LPSTR pszCmdLine, int nCmdShow);
それは、
user32 LockWorkStation
やuser32 ExitWindowsEx
など、Rundll32
によって呼び出されるように設計されていないランダム関数を呼び出すために人々が<=>を使用することを止めていません。
(oops)
ExitWindowsExの実際の関数シグネチャは次のとおりです。
BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);
- 2011年:<!> quot; スロー歩道のゴミ:rundll32プログラムの悲しい歴史 <!> quot;
そしてそれを明確にするために:
- 2013年<!> quot; rundll32をいつ使用するかのガイダンス?簡単:使用しないでください <!> quot;:
<=>はWindows 95の残り物であり、多くの最新のエンジニアリングガイドラインに違反しているため、少なくともWindows Vistaから非推奨になっています。
もう1つの小さなヒント:バッチファイルルートに行くとき、誤って実行した場合に備えて、バッチファイルを中止できるようにします。そのため、バッチファイルはシャットダウンを呼び出しますが、その後はコマンドプロンプトが表示されたままになります。
@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r
さらに、タイマーがあるため、オレゴントレイルでの狩り。
マシンにリモート接続した場合(ターゲットはWindows <!> nbsp; XPです。ターゲットWindows <!> nbsp; Vistaについてはわかりません)、スタートメニューのシャットダウンは置き換えられますがセッションの切断などによって、「Windowsセキュリティ」と呼ばれるものが存在するはずです。これは、 Ctrl + Alt + < kbd>終了。オーウェンが指摘したとおり。
おそらくこれを知っていますが、念のために:<!> quot; Run <!> quot;にshutdown -r
(または好きなコマンド)を入力する方がはるかに簡単です。ボックスに移動してEnterキーを押します。
どこにでもバッチファイルを残して保存します。
私はパーティーに遅れましたが、まだこの回答は見つかりませんでした。 バッチファイルを使用したり、コマンドを入力したくない場合。デスクトップにフォーカスを設定し、 Alt + F4 を使用するだけです。
Windowsは何をしたいかを尋ねるので、シャットダウンまたは再起動を選択します。
スクリーンショットやビデオについては、 https:/をご覧ください。 /tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp
@echo off
shutdown -l
これは基本的に手動で開始およびログオフをクリックするのと同じですが、バッチファイルの準備ができている場合はわずかに高速です。