バッテリーが接続されているかどうかに応じてWindowsの電源プランを変更するスクリプトを作成しようとしています。バッテリーの状態を常にチェックしている無限ループを試しました。変数「$ batteryStatus」は、バッテリーモードの場合は1を返し、AC電源モードの場合は2を返します。
私が抱えている問題は、何も起こらず、同じ状態のままであるということです。 eventvwr.mscを使用してこれを解決できる可能性があることを読みましたが、このスクリプトをイベントに適応させる方法がよくわかりません。これは私がこれまでに持っているPowershellのコードです:
$equilibradoGUID = '381b4222-f694-41f0-9685-ff5bb260df2e'
$bateriaGUID = '0ed875ed-d70e-4dd1-bc8e-95a18268730f'
$batteryStatus = (Get-WmiObject Win32_Battery).BatteryStatus
while ($True) {
if ($batteryStatus2 -eq 2){
Write-Output "AC"
powercfg -setactive $equilibradoGUID
}
else {
Write-Output "Battery"
powercfg -setactive $bateriaGUID
}
}
Windows 1064ビット。
あなたのアプローチを有効にするには再起動が必要ですが、それを維持したい場合はこれが役立つかもしれません https://stackoverflow.com/questions/7355331
再起動や管理者権限を必要としないcmdスクリプトを使用してWindows10の電源設定を変更する方法:
rem Change Win10 power settings w/o restart or admin privileges
@echo off
setlocal
:minpower
POWERCFG /CHANGE /MONITOR-TIMEOUT-DC 1
POWERCFG /CHANGE /DISK-TIMEOUT-DC 2
POWERCFG /CHANGE /STANDBY-TIMEOUT-DC 3
POWERCFG /CHANGE /MONITOR-TIMEOUT-AC 1
POWERCFG /CHANGE /DISK-TIMEOUT-AC 2
POWERCFG /CHANGE /STANDBY-TIMEOUT-AC 3
exit /b
:normalpower
POWERCFG /CHANGE /MONITOR-TIMEOUT-DC 10
POWERCFG /CHANGE /DISK-TIMEOUT-DC 29
POWERCFG /CHANGE /STANDBY-TIMEOUT-DC 30
POWERCFG /CHANGE /MONITOR-TIMEOUT-AC 10
POWERCFG /CHANGE /DISK-TIMEOUT-AC 29
POWERCFG /CHANGE /STANDBY-TIMEOUT-AC 30
exit /b
:maxpower
POWERCFG /CHANGE /MONITOR-TIMEOUT-DC 1
POWERCFG /CHANGE /DISK-TIMEOUT-DC 601
POWERCFG /CHANGE /STANDBY-TIMEOUT-DC 602
POWERCFG /CHANGE /MONITOR-TIMEOUT-AC 1
POWERCFG /CHANGE /DISK-TIMEOUT-AC 601
POWERCFG /CHANGE /STANDBY-TIMEOUT-AC 602
exit /b