web-dev-qa-db-ja.com

Powershell-AC電源値を削除しても変更されない場合

バッテリーが接続されているかどうかに応じて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
    }
} 
2
Alvaromr7

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
1
somebadhat