Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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, 239 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: 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: Kokosnuss
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
Batch & Shell
gelöst Drag and Drop in Powershell (2)

Frage von mc-doubleyou zum Thema Batch & Shell ...

Batch & Shell
gelöst Csproj mit powershell ändern (8)

Frage von Sirius91 zum Thema Batch & Shell ...

Windows 7
gelöst Energieoptionen über GPO (10)

Frage von JensDND zum Thema Windows 7 ...

Batch & Shell
gelöst Powershell Monthcalendar Datum Format ändern (4)

Frage von xpxy15 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Ubuntu

Ubuntu 17.10 steht zum Download bereit

(3)

Information von Frank zum Thema Ubuntu ...

Datenschutz

Autofahrer-Pranger - Bewertungsportal illegal

(8)

Information von BassFishFox zum Thema Datenschutz ...

Windows 10

Neues Win10 Funktionsupdate verbuggt RemoteApp

(8)

Information von thomasreischer zum Thema Windows 10 ...

Microsoft

Die neuen RSAT-Tools für Win10 1709 sind da

(2)

Information von DerWoWusste zum Thema Microsoft ...

Heiß diskutierte Inhalte
Router & Routing
Allnet - VDSL2 Modem - SFP (mini-GBIC) (20)

Frage von Dobby zum Thema Router & Routing ...

Windows 10
Windows 10 Ordnerfreigabe (18)

Frage von Xaero1982 zum Thema Windows 10 ...

Voice over IP
DeutschlandLAN IP Voice Data M Premium, Erfahrung mit Faxgeräte? (17)

Frage von liquidbase zum Thema Voice over IP ...

Monitoring
Netzwerk-Monitoring Software (17)

Frage von Ghost108 zum Thema Monitoring ...