Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Energieoptionen per PowerShell ändern

Frage Entwicklung Batch & Shell

Mitglied: Stefan007

Stefan007 (Level 2) - Jetzt verbinden

12.10.2017 um 12:51 Uhr, 335 Aufrufe, 11 Kommentare, 6 Danke

Hi,

gibt es eine Möglichkeit um per Scripte zwischen höchsten Energiesparoptionen und maximaler Leistung per Knopfdruck zu wechseln?
Falls es zum jeweiligen OS Unterschiede dabei gibt, dann soll sich die Frage nur auf Windows 10 Pro beziehen.

Gruß,

Stefan


Mitglied: 134464
12.10.2017, aktualisiert um 13:04 Uhr
Bitte warten ..
Mitglied: MrCount
LÖSUNG 12.10.2017 um 13:06 Uhr
Servus,

hier mal ein Beispiel, wie man diverse Settings macht:
01.
@echo off 
02.
CHCP 1252 
03.
 
04.
:: unplugged 
05.
set "u_monitor=10" 
06.
set "u_standby=15" 
07.
set "u_hibernate=0" 
08.
 
09.
:: plugged in 
10.
set "p_monitor=0" 
11.
set "p_standby=0" 
12.
set "p_hibernate=0" 
13.
 
14.
REM (Höchstleistung) 
15.
powercfg -SETACTIVE 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c 
16.
 
17.
REM (Ausbalanciert) 
18.
REM powercfg -SETACTIVE 381b4222-f694-41f0-9685-ff5bb260df2e 
19.
 
20.
REM (Energiesparmodus) 
21.
REM powercfg -SETACTIVE a1841308-3541-4fab-bc81-f71556f20b4a 
22.
 
23.
::Set the unplugged settings 
24.
powercfg.exe -change -monitor-timeout-dc %u_monitor% 
25.
powercfg.exe -change -standby-timeout-dc %u_standby% 
26.
powercfg.exe -change -hibernate-timeout-dc %u_hibernate% 
27.
 
28.
::Set the plugged in settings 
29.
powercfg.exe -change -monitor-timeout-ac %p_monitor% 
30.
powercfg.exe -change -standby-timeout-ac %p_standby% 
31.
powercfg.exe -change -hibernate-timeout-ac %p_hibernate%
In Zeile 15 wird das Schema gesetzt...
Bitte warten ..
Mitglied: rubberman
12.10.2017 um 13:08 Uhr
01.
@echo off &setlocal DisableDelayedExpansion 
02.
 
03.
:: Alle Energiesparpläne mit Name und GUID, sowie Index des aktiven Energiesparplans speichern 
04.
set "n=" 
05.
for /f "tokens=1,2* delims=:" %%g in ( 
06.
  'powercfg -list^|findstr /rc:": [0-9a-f][0-9a-f]*-[0-9a-f][0-9a-f]*-[0-9a-f][0-9a-f]*-[0-9a-f][0-9a-f]*-[0-9a-f][0-9a-f]* "^|findstr /n .' 
07.
) do for /f "tokens=1*" %%j in ("%%i") do for /f "tokens=1* delims=()" %%l in ("%%k") do ( 
08.
  set /a "n=%%g" 
09.
  set "guid%%g=%%j" 
10.
  set "name%%g=%%l" 
11.
  if "%%m" neq "" set "active=%%g" 
12.
13.
if not defined n exit /b 
14.
 
15.
:: Gefundene Energiesparpläne zur Auswahl stellen 
16.
setlocal EnableDelayedExpansion 
17.
for /l %%i in (1 1 %n%) do ( 
18.
  <nul set /p =%%i - "!name%%i!" 
19.
  if %%i equ %active% (echo  ^(AKTIV^)) else echo( 
20.
21.
echo ~~~~~~~~~~~~~~ 
22.
 
23.
:: Eingabeaufforderung und eingegebenen Wert prüfen 
24.
:input_loop 
25.
set "idx=_" 
26.
set /p "idx=Neues Energieschema: " 
27.
call :check idx 1 %n% || goto input_loop 
28.
 
29.
:: Ausgewählten Energiesparplan aktivieren und Scriptausführung beenden 
30.
powercfg -setactive !guid%idx%! 
31.
exit /b 
32.
 
33.
 
34.
:: Subroutine für die Prüfung des eingegebenen Werts 
35.
:check VarName Min Max 
36.
setlocal EnableDelayedExpansion 
37.
for /f "delims=1234567890 eol=" %%i in ("!%~1!") do (endlocal &exit /b 1) 
38.
2>nul set /a "dummy=!%~1!" || (endlocal &exit /b 1) 
39.
if "!%~1!" neq "%dummy%" (endlocal &exit /b 1) 
40.
if %dummy% lss %~2 (endlocal &exit /b 1) 
41.
if %dummy% gtr %~3 (endlocal &exit /b 1) 
42.
endlocal &exit /b 0
Maybe
Ist allerdings auch nur Batch und nicht Powershell.

Grüße
Steffen
Bitte warten ..
Mitglied: 134464
12.10.2017 um 13:26 Uhr
powercfg lässt sich ja problemlos auch in der powershell Konsole verwenden.
Bitte warten ..
Mitglied: rubberman
13.10.2017 um 08:40 Uhr
Joa kann man, hatte ich aber nicht parat.
Versuch:
01.
# Alle Energiesparpläne als Matches-Array speichern 
02.
$matches_arr = (powercfg -l) | 
03.
  Select-String -Pattern "^.+ ([0-9A-Fa-f]{8}(-[0-9A-Fa-f]{4}){3}-[0-9A-Fa-f]{12})\s+\((.+)\)\s*(\**)$" | 
04.
  %{$_.Matches} 
05.
 
06.
# Gefundene Energiesparpläne zur Auswahl stellen 
07.
for ($i=0; $i -lt $matches_arr.Length; $i++) { 
08.
  Write-Host ($i + 1) - `"$($matches_arr[$i].Groups[3].Value)`" $(If ($matches_arr[$i].Groups[4].Value -eq "*") {"(AKTIV)"}) 
09.
10.
"~~~~~~~~~~~~~~" 
11.
 
12.
# Eingabeaufforderung und eingegebenen Wert prüfen 
13.
do { 
14.
  try { 
15.
    $idx = [int]$(Read-Host -Prompt "Neues Energieschema") 
16.
17.
  catch {} 
18.
} until ($idx -gt 0 -and $idx -le $matches_arr.Length) 
19.
 
20.
# Ausgewählten Energiesparplan aktivieren 
21.
powercfg -setactive $matches_arr[$idx - 1].Groups[1].Value
Grüße
Steffen
Bitte warten ..
Mitglied: Stefan007
14.10.2017 um 13:24 Uhr
Zitat von MrCount:

Servus,

hier mal ein Beispiel, wie man diverse Settings macht:
01.
@echo off 
02.
> CHCP 1252 
03.
>  
04.
> :: unplugged 
05.
> set "u_monitor=10" 
06.
> set "u_standby=15" 
07.
> set "u_hibernate=0" 
08.
>  
09.
> :: plugged in 
10.
> set "p_monitor=0" 
11.
> set "p_standby=0" 
12.
> set "p_hibernate=0" 
13.
>  
14.
> REM (Höchstleistung) 
15.
> powercfg -SETACTIVE 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c 
16.
>  
17.
> REM (Ausbalanciert) 
18.
> REM powercfg -SETACTIVE 381b4222-f694-41f0-9685-ff5bb260df2e 
19.
>  
20.
> REM (Energiesparmodus) 
21.
> REM powercfg -SETACTIVE a1841308-3541-4fab-bc81-f71556f20b4a 
22.
>  
23.
> ::Set the unplugged settings 
24.
> powercfg.exe -change -monitor-timeout-dc %u_monitor% 
25.
> powercfg.exe -change -standby-timeout-dc %u_standby% 
26.
> powercfg.exe -change -hibernate-timeout-dc %u_hibernate% 
27.
>  
28.
> ::Set the plugged in settings 
29.
> powercfg.exe -change -monitor-timeout-ac %p_monitor% 
30.
> powercfg.exe -change -standby-timeout-ac %p_standby% 
31.
> powercfg.exe -change -hibernate-timeout-ac %p_hibernate% 
32.
> 
In Zeile 15 wird das Schema gesetzt...

-> sind das nur Copy and Paste Fehler in Zeile 18 und 21? ^^ Ansonsten ist es genau das was ich wollte, vielen Dank dafür!
Bitte warten ..
Mitglied: rubberman
14.10.2017 um 13:36 Uhr
Was meinst du denn mit Copy and Paste Fehler? Ggf. weichen die GUIDs auf deinem Rechner ab. Darum würde es eigentlich Sinn machen die Ausgabe von POWERCFG - L zu verarbeiten, wie oben gezeigt.

Grüße
rubberman
Bitte warten ..
Mitglied: Stefan007
14.10.2017 um 13:43 Uhr
wenn ich das rem aus Zeile 18 und 21 entferne dann geht es.
Bitte warten ..
Mitglied: rubberman
14.10.2017 um 13:46 Uhr
REM steht für Remark und macht eine Zeile zum Kommentar. Dir ist klar dass der Code dir nur Beispielaufrufe zeigt? Wenn du einen der Energiesparpläne nutzen willst musst du genau bei diesem das REM entfernen und bei den anderen setzen.

Steffen
Bitte warten ..
Mitglied: rubberman
LÖSUNG 14.10.2017, aktualisiert um 16:02 Uhr
OK, um die Verwirrung mal zu beenden ...
Wenn du die beiden GUIDs kennst, zwischen denen du wechseln willst (und falls nicht führe POWERCFG -L in einem Konsolefenster aus), dann ist das doch relativ simpel.
01.
@echo off &setlocal 
02.
:: Die beiden GUIDs zwischen denen gewechselt wird 
03.
set "high=8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c" 
04.
set "low=a1841308-3541-4fab-bc81-f71556f20b4a" 
05.
:: Prüfen, welches Schema aktiv ist und das jeweils andere aktivieren 
06.
powercfg -l|>nul findstr /e "%high%.*\*"&&(powercfg -setactive %low%)||(powercfg -setactive %high%) 
07.
:: Kontrollausgabe 
08.
for /f "tokens=2 delims=()" %%i in ('powercfg -l^|findstr /e "\*"') do echo Aktiviert: %%i&>nul timeout 2
Wenn du die Kontrollausgabe nicht brauchst, schmeißt du sie einfach raus.
Und ... natürlich kannst du vorher deine eigenen Energiesparpläne anlegen und nach deinen Vorstellungen konfigurieren.

Steffen
Bitte warten ..
Mitglied: MrCount
16.10.2017 um 07:43 Uhr
Wie @rubberman schon richtig erwähnt hat, sind die Zeilen "auskommentiert".
REM steht für Remark und macht eine Zeile zum Kommentar.

Der Code diente auch nur als Beispiel. Daraus kannst du, wie von rubberman ja schon getan, dir dein Script zusammenstellen.
Bitte warten ..
Ähnliche Inhalte
Windows 7
Energieoptionen über GPO
gelöst Frage von JensDNDWindows 710 Kommentare

Hallo Leute, bei den Win7 Clients möchte ich die Energieoprionen per GPO freigeben bzw. fest einstellen. Aber obwohl diese ...

Entwicklung
Outlook Signatur mit Powershell ändern
gelöst Frage von chris123Entwicklung3 Kommentare

Hallo zusammen, wir ziehen um und aus diesem Grund müssen sämtliche Signaturen geändert werden. Die User arbeiten auf Terminalservern ...

Entwicklung
Powershell progressbar AND multitask
Frage von today12Entwicklung4 Kommentare

Hallo Leute, ich bin mal wieder auf eure Hilfe angewiesen, da mir die verschiedensten SuFu keine geeigneten Ergebnisse liefern ...

Batch & Shell
Powershell User PW ändern
gelöst Frage von markthom87Batch & Shell7 Kommentare

Hallo, Ich versuche gerade in einem Powershell-Script ein Random Passwort auf einen User zu schreiben, es also zu ändern. ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 13 StundenWindows 102 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 15 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 1 TagInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 1 TagDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte16 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...

Windows Server
GPO nur für bestimmte Computer
Frage von Leo-leWindows Server13 Kommentare

Hallo Forum, gern würde ich ein Robocopy script per Bat an eine GPO hängen. Wichtig wäre aber dort der ...

Windows Server
KMS Facts for Client configuration
Frage von winlinWindows Server13 Kommentare

Hey Leute, wir haben in unserem Netz nun einen neuen KMS Server. Haben Bestands-VMs die noch nicht aktiviert sind. ...

Windows Tools
Software-Tool zum Entfernen von bösartigem Windows
Frage von emeriksWindows Tools11 Kommentare

Hi, siehe Betreff hat das jemals irgendjemand schonmal sinnvoll eingesetzt? (MRT) E.