Ist die Datei C:\windows\system32\shutdown.exezum Herunterfahren oder Neustarten von Windows erforderlich?
shutdown -s -t 0- eine Ebene shutdownzeigt nur Hilfe an.
Ist die Datei C:\windows\system32\shutdown.exezum Herunterfahren oder Neustarten von Windows erforderlich?
shutdown -s -t 0- eine Ebene shutdownzeigt nur Hilfe an.
Antworten:
Ihre Frage ergibt sich natürlich aus Ihrer Antwort unter https://codegolf.stackexchange.com/a/24011/18907 , insbesondere aus kinokijufdem Kommentar von 's bei der ersten Überarbeitung Ihrer Antwort.
Wie kinokijufgesagt, Windows ist kein Unix. Auf Unices und Linux shutdownist in der Tat der vollständige Shutdown-Prozess beteiligt. Es ist das Programm, das regelmäßig Warnmeldungen an angemeldete Benutzer sendet und die /run/nologinDatei schreibt , um ein weiteres Anmelden kurz vor dem geplanten Herunterfahren zu verhindern.
Unter Windows NT ist dies nicht der Fall.
Die Aktion "Herunterfahren" über die Schaltfläche "Ein / Aus" im Windows Explorer-Startmenü, die Menüoption "Herunterfahren" im Task-Manager, REBOOT /Sin TCC oder Take Command sowie andere Anwendungsprogramme, mit denen Sie das System herunterfahren können, lösen alle das Herunterfahren aus durch direkten Aufruf eines von zwei Win32-API-Aufrufen: InitiateSystemShutdownEx()oder ExitWindowsEx(). Sie tun Dinge nicht indirekt, indem sie das shutdownProgramm ausführen. (Dies erfordert tatsächlich mehr Code als nur den Aufruf der Win32-API.) Das shutdownProgramm ruft beim lokalen Herunterfahren dieselben Win32-API-Aufrufe auf.
Es ist eigentlich winlogon, csrssund smssdas sind die Programme, die Windows NT herunterfahren. Dies ist insbesondere winlogondie Hauptaufgabe bei der Verarbeitung verzögerter Anforderungen zum Herunterfahren.
shutdown. FreeBSD 9.2-Handbuchseiten . 2013-03-19.shutdown. systemdHandbuchseiten . 2013. Freedesktop.org.shutdown. upstartHandbuchseiten . 2009. Canonical Ltd.InitiateSystemShutdownEx. MSDN. Microsoft Corporation.ExitWindowsEx. MSDN. Microsoft Corporation.REBOOT. Nehmen Sie die Command / TCC-Hilfe in Anspruch. JP Software.shutdownBefehl auf Linux-Systemen überhaupt nicht am vollständigen Herunterfahren beteiligt ist. Während es Warnmeldungen senden oder / run / nologin berühren kann, ist alles, was es in Bezug auf das tatsächliche Herunterfahren tut, den entsprechenden Befehl an systemd, init usw. zu senden und zu beenden. Der Init-Prozess oder sein modernes Ersatzsystem erledigt tatsächlich die Arbeit des Herunterfahrens des Systems.
shutdownliegen direkt vor Ihnen. Das ist genauso falsch wie der Unsinn in der Einführung in Linux bei TLDP, der besagt, dass "UNIX nicht zum Herunterfahren gemacht wird". UNIX sollte tatsächlich heruntergefahren werden, und es gibt in den letzten 40 Jahren eine ganze Reihe von Büchern für UNIX-Experten, in denen das gesamte Verfahren mit Warnmeldungen an die Benutzer als Schritt 1 behandelt wird.
shutdownauf Seite 22 zu finden ist, aber er befindet sich nicht in meiner Bibliothek. Entschuldigung, M. Smith. (-: Meine Bibliothek enthält Coffins SVR5-Referenz (der auf den Seiten 355 und 683 beschriebene Warnschritt für Benutzer), ein SCO UNIX - Systemadministratorhandbuch (Warnhinweise für Benutzer als erster Schritt zum Herunterfahren auf den Seiten 52–53) und sogar Fielder's / Jägers UNIX-Systemadministration (das gesamte Kapitel 6 befasst sich mit dem Herunterfahren, wobei die Benutzer am Anfang des Kapitels gewarnt werden.) Es gibt noch viele Bücher für Fachleute, die dies behandeln.
Nein.
Der Explorer ruft diesen Befehl nicht auf, wenn Sie ihn über das Startmenü beenden.
Das Herunterfahren des Systems ist über einen Win32-API-Aufruf möglich (die Antwort von @ JdeBP enthält bei Interesse ausführliche Informationen dazu). Der Befehl ist nur eine bequeme Möglichkeit, ihn über ein Skript, eine geplante Aufgabe oder das Dialogfeld "Ausführen" auszuführen.
shutdown.exemacht man noch nicht mal ein anmutiges Herunterfahren.
shutdown, die der Fragesteller ursprünglich gemacht hat. (Diese Teile von) Installationsprogrammen werden häufig in kompilierten Sprachen geschrieben, die übrigens nur die Win32-API aufrufen.
Wie von ultrasawblade (upvote) erklärt, handelt es sich beim Herunterfahren des Systems um einen Win32-API-Aufruf an: ExitWindowsEx
Der Link enthält auch ein Beispiel für die Implementierung eines Herunterfahrens von C. Sie können dies auch von C # aus mit P / Invoke (Platform Invoke) ausführen. pinvoke.net stellt eine Reihe von Signaturen zur Verfügung: http://www.pinvoke.net/default.aspx/user32/exitwindowsex.html
Es ist nicht notwendig. shutdown.exeist nur ein Dienstprogramm zum Herunterfahren eines lokalen oder Remote-Computers. Es sieht aus wie shutdown.exenutzt die native API ‚s NtShutdownsystem. Während Windows verwendet ExitWindowsEx( wie bereits erwähnt ).