2015-09-14 20:06:52 +0000 2015-09-14 20:06:52 +0000
245
245

結論から言うと、Windows 10のデスクトップのウェイクアップタイマーを停止する

Windows 10 デスクトップがスリープ/休止状態の電源状態からユーザーの介入なしに起動しないようにするにはどうすればいいですか?

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

回答 (3)

377
377
377
2015-09-14 20:39:07 +0000

Summary

この問題に影響を与えるものはいくつかあります。このサイトのあちこちに、この問題に対処するための様々な方法が詳細に書かれているのは承知していますが、この記事ではそれらをまとめて、この問題の影響を受けた者としての私の見識を加えることを目的としています。

ステップ2で説明した修正方法は、Windows Updateをインストールした後にWindows 10がマシンを再起動しないようにするためにも使用できます。

この修正は Fall Update (1709) にも適用されます。ただし、更新プロセスがこれに代わるため、「再起動」タスクを再度無効にし、セキュリティ権限を再設定する必要があります。

Step 1: すべての電源プロファイルのウェイクタイマーを無効にする

怠け者の技術ブロガーは、これで検索が終了したと思わせるでしょう。このステップを踏むことで、いくつかの誤ったシャットダウンがなくなるのは事実ですが、特にWindows 10では、ユーザーの介入に関係なく、この設定を尊重できない設定や設定が多数存在します。コントロールパネル→電源オプションに移動します。ここから、リストの最初にある電源プロファイルを選択し、「ウェイクタイマー」を無効にします。すべてのプロファイルを調べます。

画像を提供してくれた StackExchange のユーザー olee22 さんに感謝します。

Windows 10では、この設定を**すべてのパワープロファイル*に対して修正することを強くお勧めします。様々なWindowsの学部が異なるプロファイルを使用しています。

ステップ2: 手に負えないrebootスケジュールされたタスクを無効にする

注意: Windows 10システムの再起動を停止するために使用できるPowerShellスクリプトを作成しました。こちらにあります。 github.com/seagull/disable-automaticrestarts .

Windows 10のUpdateOrchestratorのスケジュールされたタスクフォルダには、"reboot “というタスクが含まれています。このタスクは、更新プログラムが利用可能かどうかにかかわらず、コンピュータを起動して更新プログラムをインストールします。単にコンピュータを起動させる権限を削除するだけでは十分ではありません。タスクスケジューラを終了した後、Windowsはこのタスクを編集して再び権限を与えます。

コントロールパネルから管理ツールに入り、タスクスケジューラを表示します。一番やりたいことは以下の通りです。

ここから、タスクのパーミッションを変更して、Windowsがいたずらしないようにする必要があります。タスクはC:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestratorにあります。ファイル拡張子なしでRebootと呼ばれています。それを右クリックしてプロパティを入力し、自分を所有者にするにします。最後に以下のようになるように設定します。

ここでは、SYSTEMの読み取り専用パーミッションでファイルが表示されています。自分のアカウントでさえも書き込みアクセスができないようにしてください(必要であればいつでも後でパーミッションを変更することができます)。また、あなたがルートフォルダ上の任意の既存の権限を上書きするために、この画面の[詳細設定]ボタンからファイルの継承された権限を無効にすることを確認してください。これにより、あなたの変更を実装した後に、Windowsがあなたの変更に干渉することを100%防ぐことができます。

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

UpdateOrchestratorタスクを変更するパーミッションを持っていない場合

UpdateOrchestratorのタスクを変更するには、SYSTEMのパーミッションが必要になりましたが、administratorのパーミッションもTrustedInstallerのパーミッションも必要ありません。 [ これを回避する方法の一つは、[(https://answers.microsoft.com/en-us/windows/forum/windows_10-other_settings/no-permission-to-disable-a-task-in-task-scheduler/4ec2c460-7c2f-4593-b84f-c9b1687ae797)]によるものです。

1.Microsoft独自の PsTools をインストールする。 2. コマンドプロンプトを管理者として開き、ローカルのcdフォルダにPsToolsを入れる。 3. 3. psexec.exe -i -s %windir%\system32\mmc.exe /s taskschd.msc 4. 4. 前述のように UpdateOrchestrator に移動し、Reboot タスクを無効にする。

Windows 1709 (Fall Creators’ Update) の注意事項

Windows のインストールプロセスでは、ファイルのパーミッションが変更されますので、アップグレード後にこのガイドを再度確認してください。

AC Power Installという新しいタスクが作られ、それに同じ手順を適用する必要があるという報告を聞いたことがありますが、16299.192(2018-01 Meltdownパッチ)アップデートをインストールした後に自分のデバイスでこのタスクが生成されるのを見たことがないので、絶対的な確信を持ってアドバイスすることはできません。上記で実行したのと同じ手順は、導入したどのタスクでも動作するはずです。

Step 3: PowerShellでウェイクタイマーをチェックする

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

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

リストされているすべてのタスクを調べ、コンピュータを起動する許可を削除します。Rebootで行ったようにパーミッションを気にする必要はありません。

ステップ 4: PC をウェイクアップできるハードウェアをチェックする

沢山の USB ハードウェアが使用されている場合、PC をウェイクアップする機能があります (キーボードは、例えば、キーが押されたときによくそうします)。知らない人のために、最新のハードウェアの一般的で便利な機能は「Wake on LAN」と呼ばれています。お使いのデバイスが有線イーサネットケーブルを介してローカルネットワークに接続されている場合(それはWi-Fiでは動作しません)、受信したときにPCをウェイクアップする通信を送信することができます。これは私がよく使う機能ですが、デフォルトの動作があまりにも大袈裟なので、この機能を導入しなければなりません。

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

powercfg -devicequery wake_armed

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

Step 5: 念のためグループポリシーを確認する

スタートメニューを右クリックして「実行」を選択します。GPEdit.MSC と入力します。コンピュータの設定→管理テンプレート→Windowsコンポーネント→Windowsアップデート→Windowsアップデートの電源管理を有効にして、スケジュールされたアップデートをインストールするためにシステムを自動的に起動するには、以下の設定を見つけます。ダブルクリックして無効に設定します。

Step 6: 自動メンテナンスのためにマシンを起こすのを無効にする

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

時間をもっと社交的なものに設定し(午後7時でも構いません)、タスクのためにマシンを起動する機能を無効にします。

26
26
26
2016-04-20 22:10:26 +0000

私は今、このスクリプトを使って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 }
}

ご覧のように、スケジュールされたタスクファイルのパーミッションを除いて、このの回答に記載されている全てのステップに多かれ少なかれ対応しています。しかし、私はアンロック/ログオンのたびにこのスクリプトを黙って[実行]するつもりなので、これが全く問題にならないことを願っています。

11
11
11
2016-11-18 02:33:02 +0000

他の回答は非常に参考になりましたので、できればコメントしたいと思いますが、ここにあるステップ3と4を助けるために、私がすぐに書いたソフトウェアを投稿したいと思いました。 https://github.com/Omniru/System-Wake-Manager/wiki/Home-&-Download

うまくいけば、何人かの方にお役に立てると思います。

このポップアップが表示されるかもしれません。