C:\windows\system32\shutdown.exe
Windowsをシャットダウンまたは再起動するためにファイルは必要ですか?
shutdown -s -t 0
-プレーンshutdown
はヘルプのみを表示します。
C:\windows\system32\shutdown.exe
Windowsをシャットダウンまたは再起動するためにファイルは必要ですか?
shutdown -s -t 0
-プレーンshutdown
はヘルプのみを表示します。
回答:
もちろん、あなたの質問はhttps://codegolf.stackexchange.com/a/24011/18907での回答、特にkinokijuf
回答の最初の改訂に関するコメントから生じています。
前述のとおりkinokijuf
、WindowsはUnixではありません。UnicesおよびLinuxでは、shutdown
実際に完全なシャットダウンプロセスに関与しています。ログインしたユーザーに定期的な警告メッセージを送信し/run/nologin
、スケジュールされたシャットダウン時刻の少し前にさらにログオンするのを防ぐためにファイルを書き込むプログラムです。
Windows NTでは、これは当てはまりません。
Windowsエクスプローラーの[スタート]メニューの[電源ボタン]、[タスクマネージャー]、[ REBOOT /S
TCCまたはTake Command ]の[シャットダウン]メニューオプション、およびシステムをシャットダウンできるすべてのアプリケーションプログラムの[シャットダウン]アクション2つのWin32 API呼び出しのいずれかを直接呼び出して:InitiateSystemShutdownEx()
またはExitWindowsEx()
。彼らはshutdown
プログラムを実行することによって間接的にはしません。(実際には、Win32 API呼び出しを呼び出すよりも多くのコードが必要です。)shutdown
プログラムは、ローカルシャットダウンを実行しているときに、同じWin32 API呼び出しも呼び出します。
それは実際にはだwinlogon
、csrss
とsmss
シャットのWindows NTダウンということは、プログラムされています。特に、winlogon
遅延シャットダウン要求の処理の主な仕事はそれです。
shutdown
。 FreeBSD 9.2のマニュアルページ。2013-03-19。shutdown
。 systemd
マニュアルページ。2013. Freedesktop.org。shutdown
。 upstart
マニュアルページ。2009. Canonical Ltd.InitiateSystemShutdownEx
。MSDN。マイクロソフト。ExitWindowsEx
。MSDN。マイクロソフト。REBOOT
。コマンド/ TCCヘルプを利用してください。JPソフトウェア。shutdown
コマンドは完全なシャットダウンプロセスにまったく関与しないことに注意してください。警告メッセージを送信するか/ run / nologinをタッチしますが、実際にシャットダウンするのは、適切なコマンドをsystemd、initなどに送信して終了することだけです。initプロセスまたはその最新の置き換えsystemdは、実際にシステムをシャットダウンする作業を行います。
shutdown
のマニュアルページは目の前にあります。これは、TLDPのLinux入門で「UNIXはシャットダウンされない」と言っているナンセンスと同じくらい間違っていると考えています。UNIXは実際にシャットダウンするように作られており、UNIXの専門家向けに、手順1としてユーザーへの警告メッセージとともに、40年以上にわたって非常に多くの本があります。
shutdown
しますが、ライブラリにはありません。ごめんなさい、M。スミス。(-:私のライブラリには、CoffinのSVR5リファレンス(355ページと683ページで説明されている警告ユーザーの手順)、SCO UNIXシステム管理者ガイド(52〜53ページのシャットダウンの最初のステップとしてのユーザーへの警告)、Fielder's /ハンターのUNIXシステム管理(第6章の全体は、章の冒頭で、ユーザーに警告し、およそシャットダウンである)一つは、これをカバーする専門家のためのより多くの本を見つけることができます。。
いや
エクスプローラは、[スタート]メニューからシャットダウンするときにこのコマンドを呼び出しません。
Win32 API呼び出しを使用して、システムをシャットダウンすることができます(@JdeBPの回答は、必要に応じて詳細を提供します)。このコマンドは、スクリプト、スケジュールされたタスク、または[実行]ダイアログから実行する便利な方法です。
shutdown.exe
は、正常なシャットダウンさえ行いません。
shutdown
質問者が元々作成したことについての声明については、質問のコンテキスト(質問にはありませんが、私の回答とそこに示されているものにあります)を参照してください。(これらの部分)インストーラーは、多くの場合、Win32 APIを呼び出すだけのコンパイル済み言語で書かれています。
ultrasawblade(upvote)で説明されているように、システムのシャットダウンは、次のWin32 API呼び出しです: ExitWindowsEx
リンクには、Cからシャットダウンを実装する方法の例もあります。また、P / Invoke(Platform Invoke)を使用してC#からシャットダウンを実行できます。pinvoke.netには、使用可能な一連の署名があります:http ://www.pinvoke.net/default.aspx/user32/exitwindowsex.html
それは必要ない。shutdown.exe
ローカルまたはリモートコンピューターをシャットダウンするための単なるユーティリティです。それはのように見えるshutdown.exe
の用途ネイティブAPIのNtShutdownsystem
。WindowsはExitWindowsEx
(既に述べたように)使用します。