Windowsをシャットダウンするためにshutdown.exeは必要ですか?


36

C:\windows\system32\shutdown.exeWindowsをシャットダウンまたは再起動するためにファイルは必要ですか?


16
他の名前に変更してみてください。
マルティノー

10
@MukulKumar効果を知りたい人で、非常に簡単にそれを元に戻すことができることを知っている人ですか?
ジョンベントレー

8
@theGreenCabbage:発行する必要がありますshutdown -s -t 0-プレーンshutdownはヘルプのみを表示します。
ローレンス

9
コンピューターのプラグを抜くと、ファイルの名前に関係なく、コンピューターがシャットダウンします。
デビッドスターキー

7
@DavidStarkey:「シャットダウン」と「シャットダウン」は同じものではありませんが。
モニカとの明度レース

回答:


31

もちろん、あなたの質問はhttps://codegolf.stackexchange.com/a/24011/18907での回答、特にkinokijuf回答の最初の改訂に関するコメントから生じています。

前述のとおりkinokijuf、WindowsはUnixではありません。UnicesおよびLinuxでは、shutdown実際に完全なシャットダウンプロセスに関与しています。ログインしたユーザーに定期的な警告メッセージを送信し/run/nologin、スケジュールされたシャットダウン時刻の少し前にさらにログオンするのを防ぐためにファイルを書き込むプログラムです。

Windows NTでは、これは当てはまりません。

Windowsエクスプローラーの[スタート]メニューの[電源ボタン]、[タスクマネージャー]、[ REBOOT /STCCまたはTake Command ]の[シャットダウン]メニューオプション、およびシステムをシャットダウンできるすべてのアプリケーションプログラムの[シャットダウン]アクション2つのWin32 API呼び出しのいずれかを直接呼び出して:InitiateSystemShutdownEx()またはExitWindowsEx()。彼らはshutdownプログラムを実行することによって間接的にはしません。(実際には、Win32 API呼び出しを呼び出すよりも多くのコードが必要です。)shutdownプログラムは、ローカルシャットダウンを実行しているときに、同じWin32 API呼び出しも呼び出します。

それは実際にはだwinlogoncsrsssmssシャットのWindows NTダウンということは、プログラムされています。特に、winlogon遅延シャットダウン要求の処理の主な仕事はそれです。

参考文献


1
あなたは本当に賢明な答え者です!私はあなたが私のプロフィールを通して実際の状況にさかのぼる方法が好きでした。
ムクルクマール14

Linuxシステムでは、shutdownコマンドは完全なシャットダウンプロセスにまったく関与しないことに注意してください。警告メッセージを送信するか/ run / nologinをタッチしますが、実際にシャットダウンするのは、適切なコマンドをsystemd、initなどに送信して終了することだけです。initプロセスまたはその最新の置き換えsystemdは、実際にシステムをシャットダウンする作業を行います。
マイケルハンプトン

いいえ、M。ハンプトン、メッセージの送信とログオンの停止は、完全なシャットダウン手順の一部です。Linuxが魔法のように消え去ったと考えてはいけません。2つのLinux shutdownのマニュアルページは目の前にあります。これは、TLDPのLinux入門で「UNIXはシャットダウンされない」と言っているナンセンスと同じくらい間違っていると考えています。UNIXは実際にシャットダウンするように作られており、UNIXの専門家向けに、手順1としてユーザーへの警告メッセージとともに、40年以上にわたって非常に多くの本があります。
JdeBP 14年

Linuxの専門家向けの本もあります。22ページにあるRod SmithのLPIC Study Guideをプラグインshutdownしますが、ライブラリにはありません。ごめんなさい、M。スミス。(-:私のライブラリには、CoffinのSVR5リファレンス(355ページと683ページで説明されている警告ユーザーの手順)、SCO UNIXシステム管理者ガイド52〜53ページのシャットダウンの最初のステップとしてのユーザーへの警告)、Fielder's /ハンターのUNIXシステム管理(第6章の全体は、章の冒頭で、ユーザーに警告し、およそシャットダウンである)一つは、これをカバーする専門家のためのより多くの本を見つけることができます。。
JdeBP

55

いや

エクスプローラは、[スタート]メニューからシャットダウンするときにこのコマンドを呼び出しません。

Win32 API呼び出しを使用して、システムをシャットダウンすることができます(@JdeBPの回答は、必要に応じて詳細を提供します)。このコマンドは、スクリプト、スケジュールされたタスク、または[実行]ダイアログから実行する便利な方法です。


実際にshutdown.exeは、正常なシャットダウンさえ行いません。
kinokijuf

その答えに注意してください!エクスプローラーはそのコマンドを呼び出しませんが、Windowsをシャットダウンまたは再起動する他のプロセスは呼び出します:スクリプトまたはスケジュールされたタスクがインストーラーまたはシステム管理者からのスケジュールされたメンテナンスタスクである場合、それは単に「行う便利な方法」ではありません。
ナイジェルヘファーナン

1
それはそれを「必要」にしない、ナイル。質問者の質問に対する反論、およびshutdown質問者が元々作成したことについての声明については、質問のコンテキスト(質問にはありませんが、私の回答とそこに示されているものにあります)を参照してください。(これらの部分)インストーラーは、多くの場合、Win32 APIを呼び出すだけのコンパイル済み言語で書かれています。
JdeBP

8

ultrasawblade(upvote)で説明されているように、システムのシャットダウンは、次のWin32 API呼び出しです: ExitWindowsEx

リンクには、Cからシャットダウンを実装する方法の例もあります。また、P / Invoke(Platform Invoke)を使用してC#からシャットダウンを実行できます。pinvoke.netには、使用可能な一連の署名があります:http ://www.pinvoke.net/default.aspx/user32/exitwindowsex.html


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.