Benutzer mit den meisten Antworten
Sleep Mode verhindern

Frage
-
Hallo!
Habe ein Powershell Script, dass einige Zeit benötigt.
Kann ich einen Event generieren, dass sich Windows nicht schlafen legt ?
Die Simulation einer Tastatureingabe oder einer Mausbewegung gefällt mir dazu nicht sehr gut.
Danke für eure Tipps.
Erhy
- Verschoben Dimitar DenkovMicrosoft contingent staff Mittwoch, 22. Januar 2020 11:49 Aus: Windows-Entwicklung
- Bearbeitet Denniver ReiningMVP, Moderator Mittwoch, 22. Januar 2020 13:12 Titel gekürzt.
Antworten
-
Von der Sendkey-Lösung rate ich ab, die ist nach meiner Erfahrung zu unberechenbar. Was wenn auf dem Monitoring-Rechner z.b. ein Popup von Windows oder einem anderen Tool aufpoppt, das deinen Tastendruck akzeptiert? Vielleicht als "Ja" interpretiert? Das kann so richtig ins Auge gehen.
Ganz nervig wirds wenn der Rechner lokal oder remote noch interaktiv benutzt werden soll, dann tippt das Skript immer irgendwo rein oder wählt etwas aus. Es gibt auch leider keine Taste (auch nicht STRG etc) die nicht dazwischen funken würde.
Ich hab damals nach langem rumprobieren, wenn ich mich recht erinnere, etwas in dieser Art: LINK erfolgreich benutzt.
Grüße, Denniver
Blog: http://www.bytecookie.de
Powershell Code Manager: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort vorgeschlagen Patrick WahlmüllerMVP Mittwoch, 22. Januar 2020 15:37
- Als Antwort markiert Erhy Mittwoch, 22. Januar 2020 22:56
Alle Antworten
-
Hallo Erhy,
Ich habe gerade den Thread ins passende Forum verschoben. Würdest Du der Übersichtlichkeit halber das Skript veröffentlichen?
Gruß,
DimitarBitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip „IT-Pros helfen IT-Pros“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.
-
Die Simulation einer Tastatureingabe oder einer Mausbewegung gefällt mir dazu nicht sehr gut.
Warum nicht? Das ist immer noch das einfachste. Alternativ müsstest Du die Energie-Einstellungen anpassen oder eine Dialogbox finden, die, so lange sie aktiv ist, den Inaktivitätszähler unterbricht.
Wir verwenden hier folgenden Schnipsel:
#SendKeys $MyShell = New-Object -com "Wscript.Shell" while ((get-date).Hour -lt 17) { Start-Sleep -Seconds 90 $MyShell.SendKeys(".") } & shutdown /s
Das hält unseren Monitoring-Monitor aktiv. 17:00 Uhr machen wir Feierabend, dann wird die Kiste heruntergefahren.
Live long and prosper!
(79,108,97,102|%{[char]$_})-join''
-
Von der Sendkey-Lösung rate ich ab, die ist nach meiner Erfahrung zu unberechenbar. Was wenn auf dem Monitoring-Rechner z.b. ein Popup von Windows oder einem anderen Tool aufpoppt, das deinen Tastendruck akzeptiert? Vielleicht als "Ja" interpretiert? Das kann so richtig ins Auge gehen.
Ganz nervig wirds wenn der Rechner lokal oder remote noch interaktiv benutzt werden soll, dann tippt das Skript immer irgendwo rein oder wählt etwas aus. Es gibt auch leider keine Taste (auch nicht STRG etc) die nicht dazwischen funken würde.
Ich hab damals nach langem rumprobieren, wenn ich mich recht erinnere, etwas in dieser Art: LINK erfolgreich benutzt.
Grüße, Denniver
Blog: http://www.bytecookie.de
Powershell Code Manager: Link
(u.a. Codesnippets verwalten + komplexe Scripte graphisch darstellen)
Hilf mit und markiere hilfreiche Beiträge mit dem "Abstimmen"-Button (links) und Beiträge die eine Frage von dir beantwortet haben, als "Antwort" (unten).
Warum das Ganze? Hier gibts die Antwort.- Als Antwort vorgeschlagen Patrick WahlmüllerMVP Mittwoch, 22. Januar 2020 15:37
- Als Antwort markiert Erhy Mittwoch, 22. Januar 2020 22:56
-
Was wenn auf dem Monitoring-Rechner z.b. ein Popup von Windows oder einem anderen Tool aufpoppt, das deinen Tastendruck akzeptiert? Vielleicht als "Ja" interpretiert?
... 'ist in meinem Fall überhaupt gar kein Problem, aber wenn's was Besseres gibt, isses ja noch besser. ;-)
Danke für den Link.
Live long and prosper!
(79,108,97,102|%{[char]$_})-join''
-
Danke Denniver!
Da ich kein weiteres Programm im PowerShell Script starten möchte, probiere ich es
mit einem wiederholten Aufruf von$ste::SetThreadExecutionState( $ES_SYSTEM_REQUIRED)
gemäß der Doku
https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-setthreadexecutionstatesollte es auch periodically funktionieren