Benutzer mit den meisten Antworten
Deaktivieren, dass Geräte den Computer wecken können (mit einem Powershell Skript)

Frage
-
Hallo liebe Technet-Gemeinde
Ich würde gerne das folgende Skript auf unseren PC's ausführen, damit die Komponenten (Maus, Tastatur und LAN-Port) nicht in der Lage sind, den Computer aus dem Energiesparmodus zu wecken.Das Skript erfüllt seinen Zweck und macht was ich will, doch es kommt beim ausführen trotzdem eine Fehlermeldung.
An was liegt das?
Wir haben Windows 8.1 (Update 1) x64 im Einsatz.
$query = powercfg.exe /devicequery wake_armed ForEach ($element in $query) { powercfg.exe /devicedisablewake "$element" }
Danke und Gruss
ICT-Shelby
- Bearbeitet _DisplayName_ Freitag, 12. September 2014 06:09
Donnerstag, 11. September 2014 14:21
Antworten
-
Hi Martin
Besten Dank für deine Antwort :-) Damit hat es nun endlich geklappt.
Hier für alle noch die endgültige Lösung.
Ein CMD-Skript mit folgender Zeile:
for /f "tokens=*" %%d in ('powercfg.exe /devicequery wake_armed') do powercfg.exe /devicedisablewake "%%d"
Besten Dank euch allen!
ICT-Shelby
- Als Antwort markiert _DisplayName_ Montag, 22. September 2014 20:05
Montag, 22. September 2014 14:56
Alle Antworten
-
Hi,
wäre hilfreich, wenn Du die Fehlermeldung auch postest... ;-)
Gruß
Ben
MCITP Windows 7
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)
Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.Donnerstag, 11. September 2014 15:05 -
Hi Ben
Kam mir gestern auch noch in den Sinn.
Zudem muss ich noch anfügen, dass ich noch nicht viel Erfahrung in Powershell habe.
Hier die Fehlermeldung:
powercfg.exe : Ungltige Parameter -- Geben Sie "/?" ein, um die Hilfe anzuzeigen.
In Zeile:4 Zeichen:9
+ powercfg.exe /devicedisablewake "$element"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (Ungltige Param...lfe anzuzeigen.:String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
Freitag, 12. September 2014 06:08 -
Hi,
wenn Du Nicht-Powershell-Befehle innerhalb der Powershell mit Parametern ausführen willst, ist die Syntax etwas anders.
Entweder machst Du es Dir ganz einfach und führst den Befehl als cmd-Befehl aus:
cmd /c "powercfg.exe /devicedisablewake "$element""
Oder Du verwendest folgende Syntax:
Start-Process powercfg -ArgumentList '/devicedisablewake','"$element"'
Gruß
Ben
MCITP Windows 7
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)
Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.Freitag, 12. September 2014 08:06 -
Hi Ben
Danke für deine Tipps. Ich habe natürlich beide ausprobiert.
Ich habe nun mein Skript mit deinem zweiten Befehl abgeändert.
Wenn ich nun das Skript ausführe, öffnen sich 3 CMD-Fenster rasant schnell und schliessen sich wieder. Ganz normal, ja! Aber, in diesem Fenster steht Zitat:
Ein unerwarteter Fehler ist aufgetreten. Der Vorgang kann nicht ausgeführt werden. Sie sind eventuell nicht berechtigt, diesen Vorgang durchzuführen.Das kann aber nicht sein. Ich arbeite als Admin, habe ISE als Admin ausgeführt und die ExecutionPolicy ist auch ausser Gefecht gesetzt worden ;-) Habe auch noch probiert, das ganze im ISE (x86) auszuführen, aber da kommt ebenfalls die gleiche Meldung.
Danke im Voraus! ICT-Shelby
Freitag, 12. September 2014 12:13 -
Hi,
ich hab das jetzt mal selbst ausprobiert. Das Problem ist, dass powercfg anscheinend mit der Schleife nicht zurechtkommt. Führe ich den Befehl ohne alles aus, funktioniert er einwandfrei (auch ohne Anführungszeichen). Sobald man den innerhalb der Schleife ausführen lässt, erkennt er anscheinend die Variable nicht mehr.
Ich hab nur leider jetzt nicht viel Zeit, da weiterzuschauen...
Gruß
Ben
MCITP Windows 7
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)
Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.Freitag, 12. September 2014 12:46 -
Wie wäre es mit Commandline statt Powershell?for /f "tokens=*" %d in ('powercfg /devicequery wake_armed') do powercfg/devicedisablewake "%d"Funktioniert problemlos :)BTW: "start-process" führt die powercfg-Befehle in neuen Prozessen aus -die werden nahezu gleichzeitig gestartet. Möglicherweise (ich bin mirsogar fast sicher) hilft "-wait"...
Martin
Mal ein GUTES Buch über GPOs lesen?
NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
And if IT bothers me - coke bottle design refreshment :))Freitag, 12. September 2014 13:22 -
Hallo Martin
Habe deine Commandline versucht. Aber diese funktioniert bei mir irgendwie auch nicht.
Mein Skript im ersten Thread funktioniert ja eigentlich, es kommt einfach eine Fehlermeldung. Ausgeführt und funktionieren tut es ja trotzdem.
Was meint ihr, kann ich dies dann nicht einfach so lassen? Danke & Gruss
Mittwoch, 17. September 2014 09:37 -
Hi,
sauber ist es zwar nicht, aber wenn es nachweislich funktioniert...
Du solltest es dann halt mal auf mehreren unterschiedlichen Systemen testen, nicht, dass es dann tatsächlich irgendwo doch nicht funktioniert.
Gruß
Ben
MCITP Windows 7
Wenn Dir meine Antwort hilft, markiere sie bitte entsprechend als Antwort! Danke! :-)
Hinweis: Meine Posts werden "wie besehen" ohne jedwede Gewähr bereitgestellt, da menschliche, technische und andere Fehler nicht ausgeschlossen werden können.Mittwoch, 17. September 2014 09:43 -
> Habe deine Commandline versucht. Aber diese funktioniert bei> mir irgendwie auch nicht.Hast Du das in eine CMD gepackt? Dann mußt Du das %d vorne und hintendurch %%d ersetzen...
Martin
Mal ein GUTES Buch über GPOs lesen?
NO THEY ARE NOT EVIL, if you know what you are doing: Good or bad GPOs?
And if IT bothers me - coke bottle design refreshment :))Mittwoch, 17. September 2014 15:52 -
Hi Martin
Besten Dank für deine Antwort :-) Damit hat es nun endlich geklappt.
Hier für alle noch die endgültige Lösung.
Ein CMD-Skript mit folgender Zeile:
for /f "tokens=*" %%d in ('powercfg.exe /devicequery wake_armed') do powercfg.exe /devicedisablewake "%%d"
Besten Dank euch allen!
ICT-Shelby
- Als Antwort markiert _DisplayName_ Montag, 22. September 2014 20:05
Montag, 22. September 2014 14:56