673

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

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

4

10 に答える 10

1174

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 ユーザーによって発見されました。


これと一緒に、他のいくつかの本当に良い答えも言及されていることを確認したいと思います。ここでは、順不同です。

于 2008-10-02T13:37:28.357 に答える
377

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

すぐに再起動したいときはいつでもこれを使用します。

shutdown -t 0 -r -f

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

shutdown -t 30 -r

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

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

于 2008-10-02T13:45:10.930 に答える
82

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

shutdown -r -f -m \\machinename

また:

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

元の回答: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によって呼び出されるように設計されていないランダムな関数を呼び出すために人々が使用することを止めていません。rundll32user32 LockWorkStationuser32 ExitWindowsEx

(おっと)

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

BOOL WINAPI ExitWindowsEx(UINT uFlags, DWORD dwReserved);

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

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

于 2008-10-02T13:56:18.670 に答える
12

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

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

さらに、タイマー式なので、オレゴン トレイルで狩りをするときとほぼ同じスリルを味わうことができます。

于 2011-06-10T03:12:53.407 に答える
7

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

于 2008-10-02T13:57:09.013 に答える
7

ご存知かもしれませんが、念のため、shutdown -r[実行]ボックスに(または任意のコマンドを)入力してEnterキーを押す方がはるかに簡単です。

バッチファイルをどこにでも置いておくのを節約します。

于 2008-10-02T14:01:24.337 に答える
6

基本的なログオフ コマンドとして、メモ帳またはワードパッドに次のように記述します。

@echo off
shutdown -l

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

于 2010-03-11T16:47:42.827 に答える