リモートデスクトップ接続を使用してワークステーションにアクセスしています。しかし、この環境では、スタートメニューの電源オプションを使用できません。シャットダウンまたは再起動する別の方法が必要です。
コマンドラインからコンピューターの電源状態を制御するにはどうすればよいですか?
リモートデスクトップ接続を使用してワークステーションにアクセスしています。しかし、この環境では、スタートメニューの電源オプションを使用できません。シャットダウンまたは再起動する別の方法が必要です。
コマンドラインからコンピューターの電源状態を制御するにはどうすればよいですか?
回答:
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ユーザーによって発見されました。
他にも本当に良い答えがいくつか紹介されていることを確認したいと思います。ここでは、それらは特定の順序ではありません。
/<switch>
代わりに私が使用したもの-<switch>
。ヘルプセクションでもを使用してい/
ます。
-f
、強制的に再起動するオプションを追加することもできます。そうしないと、セッションが終了し、頑固なアプリがシステムをハングさせる可能性があります。すぐに再起動を強制しますshutdown -t 0 -r -f
。より親しみやすい「時間を与える」オプションについては、これを使用できますshutdown -t 30 -r
。これ-f
は、タイムアウトによって暗示されます。(Mateusz Koniecznyによる編集案から)
リモートマシンを使用している場合は、-fオプションを追加して強制的に再起動することもできます。そうしないと、セッションが終了し、頑固なアプリがシステムをハングさせる可能性があります。
私はすぐに再起動したいときにこれを使用します:
shutdown -t 0 -r -f
より友好的な「時間を与える」オプションについては、これを使用できます。
shutdown -t 30 -r
コメントでわかるように、-fはタイムアウトによって暗示されます。
-m
リモートシャットダウンのオプションについては誰も言及していません。
shutdown -r -f -m \\machinename
また:
-r
パラメーターは再起動を引き起こします(これは通常、物理的に起動するのが難しいため、リモートマシンで必要な操作です)。-f
パラメータオプションは、再起動を強制します。\\IP.AD.DR.ESS
(つまり、必要なポートが開いていて、必要な権限がある場合)、はい、これはインターネット経由で機能するはずです。
元の回答: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
意味です:
LOGOFF
SHUTDOWN
REBOOT
FORCE
POWEROFF
(組み合わせ可能-> 6 = 2 + 4 FORCE REBOOT
)
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以降は非推奨になっています。
もう1つの小さなヒント:バッチファイルルートを実行するときに、誤って実行した場合に備えて、バッチファイルを中止できるようにしたいと思います。そのため、バッチファイルはシャットダウンを呼び出しますが、その後、コマンドプロンプトに移動します。
@echo off
echo Shutting down in 10 seconds. Please type "shutdown /a" to abort.
cmd.exe /K shutdown /f /t 10 /r
さらに、タイマーがオンになっているため、オレゴントレイルで狩りをするときと同じスリルを味わえます。
マシンにリモート接続している場合(ターゲットはWindows XPです。ターゲットWindows Vistaについてはわかりません)、スタートメニューのシャットダウンが[ セッションの切断 ]などに置き換えられますが、 'Windowsセキュリティ'と呼ばれるものも必要です。オーウェンが指摘したCtrl+ Alt+ と同じですEnd。
あなたはおそらくこれに気づいているかもしれませんが、念のために言えshutdown -r
ば、「実行」ボックスに(または好きなコマンドを)入力してEnterキーを押す方がはるかに簡単です。
バッチファイルをいたるところに置いておくことを節約します。
私はパーティーに遅れましたが、まだこの答えを見ていません。バッチファイルを使用したくない場合、またはコマンドを入力したくない場合。デスクトップにフォーカスを設定し、Alt+ を使用するだけF4です。
Windowsは何をしたいかを尋ねてきます。シャットダウンまたは再起動を選択してください。
スクリーンショットやビデオについては、https://tinkertry.com/how-to-shutdown-or-restart-windows-over-rdpをご覧ください。