回答:
回答
これに影響する可能性のあるものがいくつかあります。このサイトには、この問題にアプローチするさまざまな方法を詳述した投稿があります。この投稿の目的は、それらを統合し、自分自身の影響を受けた誰かとして、問題に対する私自身の洞察を加えることです。
手順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]の下。あなたがしたい最も重要なことは次のとおりです。
ここから、タスクの権限を変更して、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電源管理を有効にしてシステムを自動的に起動し、スケジュールされた更新をインストールする]で次の設定を見つけます。ダブルクリックして、無効に設定します。
ステップ6:自動メンテナンスのためにマシンを起動することを無効にします
マイクロソフトの誰かは、これについてユーモアのセンスを持っています。PCで夜中に目が覚めた場合、何よりも聞きたいのは、毎晩のデフラグを行うハードドライブのクランチとグラインディングです。コントロールパネルの[セキュリティとメンテナンス]セクションを見つけて、この機能を無効にします。そこから「メンテナンス」を展開し、「メンテナンス設定の変更」へのリンクを探します。
時間をより社交的なものに設定し(午後7時は問題ありません)、タスクのためにマシンをウェイクアップするマシンの機能を無効にします。
現在、このスクリプトを使用して、ウェイクタイマーによる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 }
}
ご覧のとおり、スケジュールされたタスクファイルのアクセス許可を除き、この回答に記載されているすべてのステップに対応しています。ただし、ロック解除/ログオンのたびにこのスクリプトをサイレントに実行するつもりなので、これがまったく問題にならないことを願っています。
Get-ScheduledTask
ようなタスクが見つかると、スクリプトの一部は失敗します。それを解決する方法はありますか?
Set-ScheduledTask
、それがかかるとは思わないでScheduledTask
オブジェクトをパラメータとして。これはタスクを変更するために実際に機能しましたか?ここではそれを報告し、他の誰かからの参照があります:social.technet.microsoft.com/Forums/en-US/...
他の答えは信じられないほど役に立ち、できればコメントするだけでしたが、ここで見つけたステップ3と4を支援するためにすぐに書いたソフトウェアを貢献したいと思いました。
https://github.com/Omniru/System-Wake-Manager/wiki/Home-&-Download
うまくいけば、それが一部の人々にとって何らかの役に立つことになるでしょう。
このポップアップが表示される場合があります。[詳細]をクリックし、[とにかく実行]をクリックする必要があります(不明な場合は、ソースコードを確認してください。結局、githubにあります)。
Reboot
、NTFSレベルでタスク定義ファイルの所有権を取得し、卑劣な卑劣なSYSTEM
(rd )ユーザーを単なる読み取りと実行のアクセス許可に減らす堅牢で無慈悲な解決策を高く評価しました。マイクロソフトがさらに有害な敵対的な手持ち策略を展開することを決定した場合、念頭に置くべき適切なナンセンスなアプローチ ボスの素晴らしい歌のように、今朝は空の空に目を覚ましました。その前の夜はメモ帳とIEのタブに保存されていないデータの雲でした。Update&Rebootの祭壇でユーザーデータを犠牲にしているOSは、明らかにその使命に失敗しています。