0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

勝手にSleep解除されるのを解除する。

Last updated at Posted at 2025-01-11

状況

WindowsUpdateをしたあとSleepが数秒でSleep解除されたり、夜中にSleep解除される。
どうせTaskScadulerの何かが初期値に戻ったせいで発生したのだろう。

毎回忘れてしまうのでSleep解除をしないようにする手順を書いておく。

Windows の設定やレジストリを編集する場合は、自己の責任においておこなってください。

参考にしたサイト

syghの新フラグメント置き場 - Windows Updateとの戦い(2018年春の陣、休止状態解除の亡霊)
一斗缶観測日記- - SYSTEM権限でタスクスケジューラを実行する方法

1.準備

1.1. PsTools

プロセスをあれこれするツール
ダウンロードして任意の場所に展開しておく。
https://learn.microsoft.com/ja-jp/sysinternals/downloads/pstools

2.Sleep解除しているTaskを特定する

2.1. Task定義情報

TaskScadulerの定義内容は以下に拡張子なしのxmlファイルとして格納されている。
%windir%\system32\Tasks

2.2. 実体はファイルだが実際はレジストリ上にバイナリキャッシュとして持っているようだ

以降の手順でSleep解除できない場合は、このキャッシュの値で上書きして戻されたのかもしれない。
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache
image.png

2.3. Tasks_Migratedについて

%windir%\\System32\Tasks_Migratedはなんなのか不明
マイグレーション(WindowsUpdate)した時のBackupだろうか?

2.4. 任意の場所へTask定義情報をコピーする

そのままではファイル開いたりできないので別の場所にコピーして調べるために
windowsフォルダをコピー
%windir%\system32\Tasks\windows

任意の場所

2.5. Sleep解除しているTaskを特定する

Task定義情報をコピーした任意の場所のファイルに対してgrepをかける。

grep文字列:<WakeToRun>true</WakeToRun>
2025-01-11 (4).png

私の環境では以下が検出されました。
.NET Framework.NET Framework NGEN v4.0.30319 64 Critical(20): true
.NET Framework.NET Framework NGEN v4.0.30319 Critical(20): true
InstallService\WakeUpAndContinueUpdates(19): true
InstallService\WakeUpAndScanForUpdates(19): true
SharedPC\Account Cleanup(20): true
UpdateOrchestrator\Schedule Wake To Work(36): true

以前Sleep解除OFFにしたSchedule Wake To WorkがWindowsUpdateでONになったようです。
UpdateOrchestrator\Schedule Wake To Work(36): true

TaskScadulerで確認するとSleep解除して実行にチェックがついています。
確認したらTaskScadulerは終了させておきます。
2025-01-11 (6).png

3.TaskScadulerをSYSTEM権限で起動してSleep解除のチェックを外す

Schedule Wake To Workの所有はSYSTEMであるため普通にTaskScadulerを使っても変更できない。

3.1. コマンドプロンプトを管理者で起動する

2025-01-11 (7).png

3.2 起動したコマンドプロンプトからSYSTEMユーザでコマンドプロンプトを起動する

PsExec.exe -s -i cmd

2025-01-11 (2).png

3.3. SYSTEMユーザでTaskScadulerを起動する

2025-01-11 (8).png

3.4. TaskScadulerが起動します。

タスクマネージャーで確認するとSYSTEMユーザで実行されています。
スクリーンショット 2025-01-11 154620.png

3.5. Sleep解除したいタスクを開きSleep解除のチェックを外す

2025-01-11 (9).png
Sleep解除のチェックが外せるようになりました。

記載していませんが、以下のタスクについてもSleep解除のチェックを外しました。
InstallService\WakeUpAndContinueUpdates(19): true
InstallService\WakeUpAndScanForUpdates(19): true

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?