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




再起動 バッチ (8)

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

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


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

直ちにリブートを強制したいときはいつでもこれを使用します:

shutdown -t 0 -r -f

よりフレンドリーな "時間を与える"オプションのために、あなたはこれを使うことができます:

shutdown -t 30 -r

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

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


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

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

スクリーンショットや動画については、 https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp : https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdp


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

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

さらに、タイマーをかけているので、 オレゴントレイルで狩りをするときと同じくらいスリルがあります。


リモートシャットダウンのために-mオプションを指定した人はいません:

shutdown -r -f -m \\machinename

また、

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

スタートメニューのシャットダウンディスコネクトセッションなどに置き換えられても、ターゲットとなるWindows Vistaについてはわかりませんが(ターゲットはWindows XPですが、私はターゲットとするWindows Vistaについてはわかりません)、「Windowsセキュリティ」と呼ばれるものも必要ですOwenが指しているのと同じことがCtrl + Alt + Endです。


あなたはおそらくこれに気づいていますが、 shutdown -r (または好きなコマンド)を「実行」ボックスに入力してEnterキーをshutdown -rだけで簡単にshutdown -rます。

すべての場所にバッチファイルを残して保存します。


元の回答: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 INFORMATION はコメントに親切に指摘しています

この目的でrundll32.exeを使用しないでください。 コマンドラインで渡した関数には、非常に固有のメソッドシグネチャがあり、 ExitWindowsメソッドシグネチャと一致しないことが予想されます。

Raymond CHENは次のように書いています。

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

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

これは、 user32 LockWorkStation rundll32user32 LockWorkStationuser32 ExitWindowsExようなrundll32によって呼び出されないように設計されていないランダム関数を呼び出すことを止めていません。

(おっとっと)

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

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

それを明快にするために:

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


バッチファイルを使用してシャットダウン機能を実行する方法は次のとおりです。

  • shutdown -r - restarts
  • shutdown -s - shutdown -s
  • shutdown -l - logoff
  • shutdown -t xx - xxは、シャットダウン/再起動/ログオフまで待機する秒数です。
  • shutdown -i - 使用したい機能を入力するためのダイアログボックスを表示します。
  • shutdown -a - 直前のシャットダウンコマンドを中止します....非常に便利です!
  • shutdown -h - 休止状態です。 簡単な間違い - それは助けにはならない
  • shutdown -y - shutdown -yすべてのプロンプトを削除します(ヘルプはドキュメントにありません)

追加オプション:

  • -f - 選択したアクションを強制する
  • -t <seconds> - シャットダウンする時刻を設定します。 "now"には-t 0を使用します。
  • -c <message> - シャットダウンにメッセージを追加する

私は他の本当に良い答えもこのこととともに記載されていることを確認したい。 ここで彼らは特別な順序ではありません。







shutdown