Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Rechner aufwecken (https://www.delphipraxis.net/201678-rechner-aufwecken.html)

Codehunter 15. Aug 2019 09:57

Rechner aufwecken
 
Hallo!

Mir ist aufgefallen, dass Windows 10 in der Lage ist, einen heruntergefahrenen Rechner aufzuwecken, um seine Updates zu installieren. Mich würde interessieren, ob man diese Fähigkeit auch in Delphiprogrammen einsetzen kann, um den Rechner aufzuwecken wenn bestimmte Aufgaben nach Zeitplan zu erledigen sind. In unserem Fall geht es um typischerweise unbeaufsichtigte Systeme, aber keine richtigen Server sondern in der Praxis oftmals gewöhnliche PCs, die von Kundenmitarbeitern gutgemeinterweise zum Feierabend runtergefahren werden. In der Nacht warten aber wichtige "Termingeschäfte" auf Erledigung, die dann natürlich unterlassen werden.

Grüße
Cody

pesi 15. Aug 2019 10:13

AW: Rechner aufwecken
 
"Aufwecken" kann man aber vermutlich höchstens aus dem Sleep-Modus von Win10. Du sagst aber, dass die Leute den Rechner herunterfahren. Das sind schon zwei unterschiedliche Dinge.
Sleep-Modus könnte gehen (auch wenn ich nicht sagen kann wie), aber ein heruntergefahrener Rechner ist erst mal maustot.

jobo 15. Aug 2019 10:17

AW: Rechner aufwecken
 
da würde ich erstmal einen Blick auf die Windows 10 Aufgabenplanung werfen.
Erstelle eine Aufgabe und schau Dir die Bedingungen (Reiter) an, Stichwort "Energie", "reaktivieren".

Damit würde ich mal spielen für den Anfang.

hoika 15. Aug 2019 10:19

AW: Rechner aufwecken
 
Hallo,
schau mal hier
https://docs.microsoft.com/en-us/win...etsuspendstate

und dort ziemlich weit unten der Link
see System Wake-up Events.

Moombas 15. Aug 2019 10:28

AW: Rechner aufwecken
 
Du kannst doch das Booten übers Netzwerk einschalten: "Wake On LAN".
Zumindest testen würde ich es, auch wenn eigentlich nicht vorgesehen das dies nach dem Ausschalten funktioniert (Siehe Seite 2):

https://www.com-magazin.de/praxis/ne...an-323958.html

Aber ggf. kannst du eine Kombination aus folgenden Punkten verwenden:

1. "Herunterfahren" verbieten (z.B. per GPO) Siehe dazu: https://kotte.biz/windows-herunterfa...nie-verbieten/
2. "Sleepmode" einstellen (sofern gewünscht)
3. WakeOnLan im BIOS einschalten (nur wenn der Sleepmode eingeschaltet wurde)
Damit sollten die ersten Hürden genommen sein, dann könntest du:
4. Den PC aus dem Sleep holen per WakeOnLAN (nur wenn der Sleepmode eingeschaltet wurde)
5. Die Updates etc. ausführen

Hab das selber aber auch noch nie durchgespielt/ getestet aber evtl. etwas für dich.

Der schöne Günther 15. Aug 2019 10:37

AW: Rechner aufwecken
 
Also bei meinen PCs sehe ich es (natürlich nur wenn man im Event-Viewer nachsieht) auch immer dass er sich nach dem Patchday gerne nachts um 2 einmal kurz einschaltet, Updates installiert und wieder herunterfährt.

Auf der Arbeit würde ich mir das noch durch Wake-On-LAN erklären, aber das Ding zu hause weckt definitiv keiner über LAN auf. Das müsste also bestimmt auch per Scheduling gehen. Sowas habe ich doch schon vor Jahren in alten BIOS-Einstellungen gesehen, dass man eine festgelegte Zeit einstellen konnte wann der PC sich einschalten soll.

Wie man das per Windows setzt wüsste ich spontan aber auch nicht...

Moombas 15. Aug 2019 10:41

AW: Rechner aufwecken
 
Also mein PC fährt Nachts nicht alleine hoch und installiert Updates (Win10). Davon steht bei mir auch nichts im Eventviewer.

Der schöne Günther 15. Aug 2019 10:44

AW: Rechner aufwecken
 
Ist bei mir Windows Pro, nicht Home. Vielleicht macht das einen Unterschied 🤔

Moombas 15. Aug 2019 10:49

AW: Rechner aufwecken
 
Nope, habe auch Win 10 Pro.
Aber mittlerweile kann man aus Windows heraus ja durchaus am BIOS Einstellungen verändern (evtl. mit Einschränkungen).
Daher würde mich das nicht wundern, wenn es die Möglichkeit geben würde. Aber außer über den von mir oben beschriebenen Weg (der auch über das Internet funktionieren soll, sofern Zugriff besteht), wüsste ich aktuell auch keinen.

Codehunter 15. Aug 2019 10:53

AW: Rechner aufwecken
 
Zitat:

Zitat von pesi (Beitrag 1441437)
"Aufwecken" kann man aber vermutlich höchstens aus dem Sleep-Modus von Win10. Du sagst aber, dass die Leute den Rechner herunterfahren. Das sind schon zwei unterschiedliche Dinge.
Sleep-Modus könnte gehen (auch wenn ich nicht sagen kann wie), aber ein heruntergefahrener Rechner ist erst mal maustot.

Jain. Ich habe selber schon erlebt, dass ein Windows 10 (Pro) in der Lage war, einen heruntergefahrenen PC wieder zu reaktivieren, Updates zu installieren und wieder runter zu fahren. Das ist sicherlich Hardwareabhängig, aber scheinbar gibt es inzwischen UEFIs die entsprechend angesteuert werden können.

Zitat:

Zitat von jobo (Beitrag 1441438)
da würde ich erstmal einen Blick auf die Windows 10 Aufgabenplanung werfen.
Erstelle eine Aufgabe und schau Dir die Bedingungen (Reiter) an, Stichwort "Energie", "reaktivieren".

Ist mir bekannt, allerdings geht es darum, die Einrichtung solcher Aufweck-Events DAU-kompatibel zu machen. Da braucht man gar nicht erst versuchen, den Anwender die MMC zu erklären. Heißt: Egal ob nun direkt ins SMBIOS/UEFI oder als Job für die Aufgabenplanung, ich müsste dem Anwender den Einrichtungsaufwand delphiseitig abnehmen.

EDIT/NACHTRAG Das geht bei Windows sogar so weit, dass ich schon erlebt habe wie es aus einer VirtualBox-VM heraus in der Lage war, das UEFI der Hostmaschine zu beschreiben. In dem Fall ging es aber nicht um Wake-Scheduling sondern um Energie-Einstellungen, die mit VBox nicht kompatibel waren und immer wieder auftauchten.

Moombas 15. Aug 2019 11:03

AW: Rechner aufwecken
 
@CodeHunter: Da du WOL auch im Gerätemanager der Netzwerkkarte einstellen kannst (MagicPacket), denke ich wirst du das auch über Delphi setzen können. Jedoch bin ich bei solchen Sachen leider Kenntnissmäßig definitiv raus, da gibts aber sicherlich andere Experten hier :)

jobo 15. Aug 2019 11:09

AW: Rechner aufwecken
 
Zitat:

Zitat von Codehunter (Beitrag 1441453)
Zitat:

Zitat von jobo (Beitrag 1441438)
da würde ich erstmal einen Blick auf die Windows 10 Aufgabenplanung werfen.
Erstelle eine Aufgabe und schau Dir die Bedingungen (Reiter) an, Stichwort "Energie", "reaktivieren".

Ist mir bekannt, allerdings geht es darum, die Einrichtung solcher Aufweck-Events DAU-kompatibel zu machen...

Klar, ich wollte Euch nur einander vorstellen. Man sieht ja an den Antworten, dass es selbst mit Bordmitteln unterschiedliche Wahrnehmung der Funktionalität gibt.
Also der Vorschlag: Funktionalität kennenlernen, prüfen, ..
dann überlegen, wie man es einbindet.
Das ginge vielleicht über API Calls, vielleicht tut es auch ein simpler Powershellaufruf (oder mehrere)... und ja, wahrscheinlich nicht, natürlich abhängig von den Berechtigungen des Users, mit dem die Software läuft / Installiert wurde.

Eigentlich will ich darauf hinaus:
Diese Systeme sind recht mächtig (Sie werden ja von Windows selbst genutzt). Es reicht also ggF. bereits beim Setup hier einzusteigen und einen zyklischen Job einzurichten (oder 2: einen Macher und einen Kontroler), deren Inhalte man später variiiert. Und man muss nicht überall ne Delphianstecknadel dranmachen.

peterbelow 15. Aug 2019 11:16

AW: Rechner aufwecken
 
[QUOTE=Codehunter;1441453]
Zitat:

Zitat von pesi (Beitrag 1441437)
"Aufwecken" kann man aber vermutlich höchstens aus dem Sleep-Modus von Win10. Du sagst aber, dass die Leute den Rechner herunterfahren. Das sind schon zwei unterschiedliche Dinge.
Sleep-Modus könnte gehen (auch wenn ich nicht sagen kann wie), aber ein heruntergefahrener Rechner ist erst mal maustot.

Nur wenn er wirklich ausgeschaltet ist. Solange er mit dem Stromnetz verbunden ist kann er durch einen scheduled task aufgeweckt werden da offenbar auf der heutigen Hardware einiges in Lauerstellung bleibt.

Zitat:

Zitat von jobo (Beitrag 1441438)
da würde ich erstmal einen Blick auf die Windows 10 Aufgabenplanung werfen.
Erstelle eine Aufgabe und schau Dir die Bedingungen (Reiter) an, Stichwort "Energie", "reaktivieren".

Zitat:

Ist mir bekannt, allerdings geht es darum, die Einrichtung solcher Aufweck-Events DAU-kompatibel zu machen. Da braucht man gar nicht erst versuchen, den Anwender die MMC zu erklären. Heißt: Egal ob nun direkt ins SMBIOS/UEFI oder als Job für die Aufgabenplanung, ich müsste dem Anwender den Einrichtungsaufwand delphiseitig abnehmen.
Es gibt für den Windows Task Scheduler ein API und ein commandline-Tool (schtasks.exe) das von Administratoren verwendet werden kann, um geplante Tasks auf Rechnern einzurichten, im Netzwerk (domaine) auch remote. Siehe https://docs.microsoft.com/en-us/win...uler-reference

Codehunter 15. Aug 2019 12:00

AW: Rechner aufwecken
 
Zitat:

Zitat von peterbelow (Beitrag 1441457)
Sleep-Modus könnte gehen (auch wenn ich nicht sagen kann wie), aber ein heruntergefahrener Rechner ist erst mal maustot.

Als alter Elektroniker möchte ich da doch widersprechen :-) Das war mal so, zu Zeiten der ollen AT-Netzteile und den ersten ATX. Schalter aus, Rechner tot (Affe auch ^^). Heute liefern ATX-Netzteile praktisch immer eine kleine Hilfsspannung, die dem BIOS/UEFI dazu dient, z.B. auf Wake on LAN oder auch nur den Einschalttaster zu reagieren. Kann man mit einem Voltmeter auch leicht am ATX-Stecker nachmessen. Wirklich aus sind sie nur, wenn man den mechanischen Schalter am Netzteil benützt. Seit es UEFI gibt, kann sich auch ein runtergefahrener Rechner selbst aufwecken. Siehe Windows Update usw. Die Frage ist halt weiterhin, WIE man das UEFI entsprechend aus Delphi heraus ansteuern und die Waketimer setzen kann.

Zitat:

Zitat von peterbelow (Beitrag 1441457)
Es gibt für den Windows Task Scheduler ein API und ein commandline-Tool (schtasks.exe) das von Administratoren verwendet werden kann, um geplante Tasks auf Rechnern einzurichten, im Netzwerk (domaine) auch remote. Siehe https://docs.microsoft.com/en-us/win...uler-reference

Naja, vom geplanten Task allein wacht noch kein Rechner auf... :-)

Schokohase 15. Aug 2019 12:32

AW: Rechner aufwecken
 
Zitat:

Zitat von Codehunter (Beitrag 1441464)
Naja, vom geplanten Task allein wacht noch kein Rechner auf... :-)

Das sehe ich anders

https://www.laptopmag.com/articles/h...pc-wake-timers

Moombas 15. Aug 2019 12:35

AW: Rechner aufwecken
 
Zitat:

Zitat von Schokohase (Beitrag 1441474)
Zitat:

Zitat von Codehunter (Beitrag 1441464)
Naja, vom geplanten Task allein wacht noch kein Rechner auf... :-)

Das sehe ich anders

https://www.laptopmag.com/articles/h...pc-wake-timers

ehm Schokohase, der erste Satz: "When your PC powers into sleep mode,..." <> PC Heruntergefahren

Schokohase 15. Aug 2019 12:48

AW: Rechner aufwecken
 
ehm, bei windows 10 gibt es unterschiedliche Herunterfahren Modi.

Wenn das System so richtig heruntergefahren wurde, dann wird das System auch nicht mehr aufgeweckt.

Das hängt aber an den Systemeinstellungen und die legen fest was bei Start-Herunterfahren passiert. Sieht gleich aus, fühlt sich gleich an, ist aber nicht gleich.

Darum ist bei Windows 10 der Status „der heruntergefahrene Rechner“ nicht wirklich eindeutig.

Der schöne Günther 15. Aug 2019 12:51

AW: Rechner aufwecken
 
Hast du da mehr Infos zu? Höre ich zum ersten mal.

Ich kenne das, seit Windows 8 glaube ich, dass ein "Herunterfahren" in der Regel bedeutet den Benutzer abzumelden und dann Ruhezustand zu machen sodass er beim nächsten Einschalten nicht komplett booten muss sondern nur den RAM-Inhalt wieder von der Platte lädt.

Der Hardware und Stromversorgung ist das aber ziemlich egal. Hätte ich jetzt gesagt.

Codehunter 15. Aug 2019 12:53

AW: Rechner aufwecken
 
Ich denke die Verwirrung um die Begriffe Sleep und Herunterfahren kommt daher, dass sowohl Microsoft als auch die Mainboard- und CPU-Hersteller dabei so inkonsistent sind. Die Funktion "Herunterfahren" bei Windows bewirkt nämlich keineswegs auf allen Rechnern das selbe. Das was dabei passiert, hängt maßgeblich von der Implementierung im BIOS/UEFI/ACPI ab. Auf manchen Maschinen, wie z.B. auch meiner privaten Ryzen-5-Kiste sind Sleep und Hibernate funktional fast identisch. Da wurde das UEFI so clever implementiert, dass bei einem Hibernate (Ruhezustand) der RAM-Inhalt so schnell auf die NVMe-SSD geklemmt wird, dass man zwischen beiden keinen Unterschied mehr bemerkt. Nur haben sie beim Runterfahren einen kleinen Bug ins UEFI gebaut, sodass Windows zwar meint, den Rechner runter zu fahren, schickt ihn aber in den Ruhezustand. In der Konsequenz ist der so "heruntergefahrene" Rechner nicht nur innerhalb von 5 Sekunden wieder startklar, sondern sämtliche Programme gleich mit im vorherigen Zustand.

Also lasst uns den Begriff "heruntergefahrener Rechner" mal so definieren, dass er sich in einem Zustand befindet, in dem noch irgendwo ein kleines Stückchen Elektronik arbeitet und in der Lage ist, eine im UEFI hinterlegte Zeitangabe auszulesen, mit der Systemzeit zu vergleichen und bei Bedarf die Kiste zu aktivieren. Das trifft IMHO seit der Einführung von UEFI als Ersatz für BIOS auf nahezu alle PCs zu.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz