スリープしたはずなのに、いつの間にか勝手に電源がついているWindowsくん。
マウスやキーボードなどのデバイスによりスリープ解除できる設定がデフォルトでONであることが原因の一つです。デバイスマネージャからOFFにはできますが、windowsアプデが入るたびに設定がデフォルトに戻されるのが地味にストレスです。
本記事では、ログオン時にデバイスのスリープ解除状態を検知し、自動的にOFFするバッチファイルを組むことを目的とします。
batファイルの作成
batファイルに関しては詳しくないですが、以下で無理やり組んでいます。
"powercfg"コマンドで、スリープ解除できるデバイスの一覧を取得します。
その後、デバイス名にマウスかキーボードが含まれている場合、スリープ解除権限を取り除きます。
こちらのbatファイルを適当に名前を付けて保存しておいてください。
必ずShift-JISで保存してください。
@echo off
setlocal
for /f "usebackq delims=" %%A in (`powercfg -devicequery wake_armed`) do (
echo %%A | find "キーボード" 1>nul
if not errorlevel 1 (powercfg /devicedisablewake "%%A")
echo %%A | find "マウス" 1>nul
if not errorlevel 1 (powercfg /devicedisablewake "%%A")
)
タスクスケジューラの設定
タスクスケジューラを開き、「新規タスク」の作成より、上記batファイルを管理者権限で自動実行させます。
単にスタートアップに登録するだけでは権限不足で実行できません。
まず初めに「全般」タブでは、タスク名と管理者権限を付与します。
次に、「トリガー」タブで特定のユーザのログオン時に実行するように設定します。
最後に、「操作」タブで実行するbatファイルを選択します。batファイルの場所は適当です。
OKを押し、タスクを保存します。
これでログオン時にデバイスのスリープ解除状態を検知し、自動的にOFFに設定できるようになりました。