ウェイクタイマーによるWindows 10デスクトップのウェイクアップを最終的に停止する


231

ユーザーの介入なしにWindows 10デスクトップがスリープ/休止状態から復帰するのをどのように停止しますか?

多くのユーザーにとってこれは問題にはなりませんが、PCと同じ部屋で寝ている場合、アップデートをダウンロードするために午前3時30分にマシンを起動させるのはいらいらします。

回答:


363

回答

これに影響する可能性のあるものがいくつかあります。このサイトには、この問題にアプローチするさまざまな方法を詳述した投稿があります。この投稿の目的は、それらを統合し、自分自身の影響を受けた誰かとして、問題に対する私自身の洞察を加えることです。

手順2で説明した修正プログラムを使用して、Windows Updateのインストール後にWindows 10がコンピューターを再起動しないようにすることもできます。

この修正は、Fall Update(1709)でも機能します。ただし、更新プロセスによって置き換えられるため、「再起動」タスクを再度無効にし、セキュリティ権限を再設定する必要があります。

手順1:すべての電源プロファイルのスリープ解除タイマーを無効にする

怠け者のハイテクブロガーは、これが検索の終わりだと信じてもらうでしょう。この手順によっていくつかの誤ったシャットダウンが排除されるのは事実ですが、特にWindows 10には、ユーザーの介入に関係なくこの設定を順守できない設定と構成がいくつかあります。[コントロールパネル]> [電源オプション]に移動します。ここから、リストの最初にある電力プロファイルを選択し、「Wake timers」を無効にします。すべてのプロファイルを処理します。

電源設定

(画像のStackExchangeユーザーolee22に感謝)

Windows 10では、使用することを選択したものだけでなく、すべての電力プロファイルに対してこの設定修正することを強くお勧めします。さまざまなWindows学部が異なるプロファイルを使用します。これにより、起こされない可能性が高まります。

ステップ2:予定外の「リブート」スケジュール済みタスクを無効にする

注: Windows 10システムの再起動を停止するために使用できるPowerShellスクリプトを作成しました。ここで見つけることができます:https : //github.com/seagull/disable-automaticrestarts

Windows 10のUpdateOrchestratorスケジュールタスクフォルダーには、「reboot」というタスクが含まれています。このタスクは、利用可能なものがあるかどうかに関係なく、アップデートをインストールするためにコンピューターを起動します。コンピューターをスリープ解除する許可を単に削除するだけでは不十分です。Windowsは、タスクスケジューラを終了した後、再度許可を与えるように編集します。

コントロールパネルから管理ツールを入力し、タスクスケジューラを表示します。 タスクスケジューラに入る

タスクスケジューラ

これが必要なタスクです-[タスクスケジューラライブラリ]> [Microsoft]> [Windows]> [UpdateOrchestrator]の下。あなたがしたい最も重要なことは次のとおりです。

タスクを許可してPCをウェイクアップする タスクを無効にする

ここから、タスクの権限を変更して、Windowsがそれを破壊できないようにする必要があります。タスクはC:\ Windows \ System32 \ Tasks \ Microsoft \ Windows \ UpdateOrchestratorにあります。ファイル拡張子なしの「再起動」と呼ばれます。それを右クリックして、プロパティを入力し、自分を所有者にします。最後に、次が表示されるように構成します。

読み取り権限のみでファイルを再起動する

このファイルは、SYSTEMの読み取り専用権限で表示されています。自分のアカウントではなく、どのアカウントにも書き込みアクセス権がないようにします(必要に応じて、いつでもアクセス許可を変更できます)。また、この画面の[詳細]ボタンからファイルの継承されたアクセス許可を無効にして、ルートフォルダーの既存のアクセス許可を上書きしてください。これにより、変更を実装した後、Windowsが変更を混乱させることが完全に停止します。

これが設定されると、スケジュールされたタスクについてこれ以上心配する必要はありません。

Windows 1709(Fall Creators 'Update)に関する注意

Windowsのインストールプロセスではファイルのアクセス許可が変更されるため、アップグレード後にこのガイドを必ず確認してください。同じ手順を適用する必要がある「AC Power Install」という新しいタスクが作成されたという報告を聞いたことがありますが、16299.192(2018-01 Meltdownパッチ)更新プログラムをインストールした後、自分のデバイスでこのタスクが生成されるのを確認していません絶対に確実にアドバイスすることはできません。上記で実行したのと同じ手順が、導入されたすべてのタスクで機能するはずです。

手順3:PowerShellでウェイクタイマーを確認する

ウェイクタイマー機能を無効にしましたが、Windows 10にはその設定を尊重しない習慣があります。そのため、安全のために、実行可能なPCをウェイクできるすべてのタスクを除外するPowerShellコマンドを実行します。管理用PowerShellコマンドプロンプトを開き(スタート、 'Powershell'と入力、Ctrl + Shift + Enter)、このコマンドをウィンドウに配置します。

Get-ScheduledTask | where {$_.settings.waketorun}

リストされているすべてのタスクを実行し、コンピューターをスリープ解除する許可を削除します。Rebootで行ったように、アクセス許可について心配する必要はありません。それは外れたケースでした。

ステップ4:PCを起動できるハードウェアを確認する

多くのUSBハードウェアは、使用中にPCをスリープ解除する機能を備えています(たとえば、キーを押すとキーボードが頻繁に起動します)。通常、wake-on-LANもこのシナリオの問題です。初心者にとって、最新のハードウェアの一般的で便利な機能は「Wake on LAN」と呼ばれます。デバイスが有線イーサネットケーブルを介してローカルネットワークに接続されている場合(Wi-Fiでは機能しません)、受信時にPCを起動する通信を送信できます。これは私がよく使う機能ですが、デフォルトの動作があまりにも熱心すぎるため、ラインに合わせる必要があります。

管理コマンドプロンプトに次のコマンドを入力します。

powercfg -devicequery wake_armed

コマンドのコマンドプロンプト出力

ここから、デバイスマネージャー(コントロールパネル)でデバイスを見つけ、[電源の管理]タブで、コンピューターをウェイクアップする機能を削除します。Wake-on-LANを保持するネットワークインターフェイスカードがある場合は、送信されたすべてのトラフィックに対してウェイクアップするのではなく、「マジックパケットを受信した場合にのみこのデバイスをウェイクアップする」を有効にします。

手順5:完全に確認するためにグループポリシーを確認する

[スタート]メニューを右クリックし、[実行]を選択します。GPEdit.MSCを入力します。[コンピューターの構成]> [管理用テンプレート]> [Windowsコンポーネント]> [Windows Update]> [Windows Update電源管理を有効にしてシステムを自動的に起動し、スケジュールされた更新をインストールする]で次の設定を見つけます。ダブルクリックして、無効に設定します。

Windows Updateウェイク機能を無効にする

ステップ6:自動メンテナンスのためにマシンを起動することを無効にします

マイクロソフトの誰かは、これについてユーモアのセンスを持っています。PCで夜中に目が覚めた場合、何よりも聞きたいのは、毎晩のデフラグを行うハードドライブのクランチとグラインディングです。コントロールパネルの[セキュリティとメンテナンス]セクションを見つけて、この機能を無効にします。そこから「メンテナンス」を展開し、「メンテナンス設定の変更」へのリンクを探します。

自動メンテナンスを無効にする

時間をより社交的なものに設定し(午後7時は問題ありません)、タスクのためにマシンをウェイクアップするマシンの機能を無効にします。


15
ありがとう!特にReboot、NTFSレベルでタスク定義ファイルの所有権を取得し、卑劣な卑劣なSYSTEM(rd )ユーザーを単なる読み取りと実行のアクセス許可に減らす堅牢で無慈悲な解決策を高く評価しました。マイクロソフトがさらに有害な敵対的な手持ち策略を展開することを決定した場合、念頭に置くべき適切なナンセンスなアプローチ ボスの素晴らしい歌のように、今朝は空の空に目を覚ましました。その前の夜はメモ帳とIEのタブに保存されていないデータの雲でした。Update&Rebootの祭壇でユーザーデータを犠牲にしているOSは、明らかにその使命に失敗しています。
ルミ

8
あなたの答えは非常に包括的で効果的であり、私はそれを賛成しましたが、いくつかの部分は非常に曖昧で混乱しているので(特にスーパーコンピューターに精通していない人にとって)、より良く書かれたと思います。適切なケース:リンクの情報は、「コマンドラインベースの」「自分をオーナーにする」という情報が、再起動タスクを右クリックして[プロパティ]を選択することに関係しますか?
マルティノー

7
この答えをありがとう。これは、私が心からWindows 10を嫌っているような動作です。明示的にクリックしていても、設定を元の状態に戻すことができます。キーボードレイアウトのような他のものでも起こります。
-Dav

13
したがって、1709にアップグレードしたばかりで、このリブートタスクを終了させることはできません。このタスクの唯一の所有者になり、完全なアクセス許可を取得した後でも、「S-1-5-18」のパスワードを入力せずに何も変更することはできません。
MFH

5
@MFH参照、私はその問題を自分自身を持っていたと私は解決策を見つけたsuperuser.com/a/1285419/118910
ohaal

26

現在、このスクリプトを使用して、ウェイクタイマーによるWindows 10デスクトップのウェイクアップ最終的に停止します

# disable wake for enabled scheduled tasks that are allowed to wake
Get-ScheduledTask |
?{ $_.Settings.WakeToRun -eq $true -and $_.State -ne 'Disabled' } |
%{
    write-host $_
    $_.Settings.WakeToRun = $false;
    Set-ScheduledTask $_
}

# disable wake for devices that are allowed to wake (list of wake capable devices: powercfg -devicequery wake_from_any)
powercfg -devicequery wake_armed |
%{
    write-host $_
    if ($_ -notmatch '^(NONE)?$')
    { powercfg -devicedisablewake $_ }
}

# disable wake timers for all power schemes
powercfg -list | Select-String 'GUID' |
%{
    write-host $_
    $guid = $_ -replace '^.*:\s+(\S+?)\s+.*$', '$1'
    powercfg -setdcvalueindex $guid SUB_SLEEP RTCWAKE 0
    powercfg -setacvalueindex $guid SUB_SLEEP RTCWAKE 0
}

# disable wake for automatic updates and for automatic maintenance
'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUPowerManagement', 
'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance\WakeUp' |
%{
    write-host $_
    $key = split-path $_
    $name = split-path $_ -leaf
    $type = 'DWORD'
    $value = 0
    if (!(Test-Path $key))
    { New-Item -Path $key -Force | Out-Null }
    if ((Get-ItemProperty $key $name 2>$null).$name -ne $value)
    { Set-ItemProperty $key $name $value -type $type }
}

ご覧のとおり、スケジュールされたタスクファイルのアクセス許可を除き、この回答に記載されているすべてのステップに対応しています。ただし、ロック解除/ログオンのたびにこのスクリプトをサイレントに実行するつもりなので、これがまったく問題にならないことを願っています。


.batスクリプトですか?
-alm

6
管理権限を必要とするPowerShell .ps1スクリプトのように見えます。許可など、スケジュールされたタスクを適切に無効にするには、バッチファイルでTASKEOWN、ICACLS、およびSCHTASKSの組み合わせを使用します。
psouza4

私のために働かなかった:(
sergiol

このGet-ScheduledTaskようなタスクが見つかると、スクリプトの一部は失敗します。それを解決する方法はありますか?
thisismydesign

2
@mousioこれらに遭遇するためには、管理端末でスクリプトを実行する必要がありました。ソリューションは、それらの所有権を取得し、管理者に完全なアクセスを許可することでした。用としてSet-ScheduledTask、それがかかるとは思わないでScheduledTaskオブジェクトをパラメータとして。これはタスクを変更するために実際に機能しましたか?ここではそれを報告し、他の誰かからの参照があります:social.technet.microsoft.com/Forums/en-US/...
thisismydesign

10

他の答えは信じられないほど役に立ち、できればコメントするだけでしたが、ここで見つけたステップ3と4を支援するためにすぐに書いたソフトウェアを貢献したいと思いました。

https://github.com/Omniru/System-Wake-Manager/wiki/Home-&-Download

うまくいけば、それが一部の人々にとって何らかの役に立つことになるでしょう。

ここに画像の説明を入力してください

ここに画像の説明を入力してください

このポップアップが表示される場合があります。[詳細]をクリックし、[とにかく実行]をクリックする必要があります(不明な場合は、ソースコードを確認してください。結局、githubにあります)。 ここに画像の説明を入力してください


1
いい仕事だ、エリック。
シーガル

1
この自動メンテナンススケジュールタスクの場合、メンテナンスが完了した後、コンピューターをスリープ状態に戻せないのはなぜですか?!その後、私はそれで問題はないだろう
ヴィタス
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.