Windowsのシャットダウン、再起動、ログオフをbatファイルで行うにはどうしたらいいですか?

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

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

質問へのコメント (1)
ソリューション

最も一般的なshutdownコマンドの使用方法は以下の通りです。

  • shutdown -s` - シャットダウンする。

  • shutdown -r - 再起動する。

  • shutdown -l - ログオフします。

  • shutdown -h - ハイバネーションします。

    注意: よくある落とし穴として、ユーザーが -h を "help" という意味だと思ってしまうことがあります(他のすべてのコマンドラインプログラムでそうなっています...ただし shutdown.exe は "hibernate" を意味します)。そして、shutdown -h を実行し、誤ってコンピュータの電源を切ってしまうのです。気をつけましょう。

  • shutdown -i` - "Interactive mode"。アクションを実行する代わりに、GUIダイアログを表示します。

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

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

  • f- プログラムを強制的に終了します。f - プログラムを強制終了させます。シャットダウン処理が行き詰まるのを防ぎます。

  • t - シャットダウンするまでの時間を設定します。即座にシャットダウンする場合は-t 0` を使用します。

  • c ` - シャットダウンメッセージを追加します。メッセージはイベントログに残ります。

  • y` - すべてのシャットダウンの問い合わせに対して、強制的に yes&quot の答えを出します。

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


私は、この回答とともに、他のいくつかの本当に良い回答も言及されていることを確認したいと思います。以下に順不同で紹介します。

解説 (7)

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

私は即座にリブートさせたいときは、このオプションを使います。

shutdown -t 0 -r -f

もっとフレンドリーな "give them some time" オプションを使いたい場合は、これを使うことができます。

shutdown -t 30 -r

コメントにもあるように、-fはタイムアウトを意味します。

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

解説 (3)

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

shutdown -r -f -m \\machinename

また:

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

オリジナルの回答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のメソッドシグネチャと一致しません。

Raymond CHEN さんが書き込みました。

rundll32.exe から呼び出される関数に必要な関数シグネチャは。

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

それでも、rundll32 を使って、user32 LockWorkStationuser32 ExitWindowsEx のような rundll32 から呼び出されるように設計されていないランダムな関数を呼び出すことを止めることはできません。

(おっと)

ExitWindowsExの実際の関数シグネチャは以下の通りです。

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

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

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

解説 (6)

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

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

さらに、タイマー上にあるため、オレゴントレイルでの狩猟の場合とほぼ同じスリルを得ることができます。

解説 (2)

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

バッチファイルをどこにでも置いておくことができます。

解説 (3)

マシンに転送されたとき。 (ターゲットはWindows&です。;nbsp。;とにかくXP。; ターゲットのWindows&についてはわかりません。;nbsp。;ビスタ。) ただし、スタートメニューの Shutdown Disconnect Session などに置き換えられます。, &#39と呼ばれるものがあるはずです。;Windows Security&#39。; &lt。と同じことをします。;kbd&gt。;Ctrl&lt。;/ kbd&gt。; +&lt。;kbd&gt。;Alt&lt。;/ kbd&gt。; +&lt。;kbd&gt。;終了&lt。;/ kbd&gt。; オーウェンが指摘したように。

解説 (2)

基本的なログオフコマンドについては、メモ帳またはWordPadにこれを記述します。

@echo off
shutdown -l

これは基本的に手動で開始とログオフをクリックすることと同じですが、バッチファイルを準備している場合は少し高速です。

解説 (0)

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

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

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

解説 (2)