防止 Windows 10 1709 在 Windows Update 後從休眠狀態被喚醒


在去年的一月,Heresy 有寫過一篇《防止 Windows 10 在 Windows Update 後從休眠狀態被喚醒》,希望可以解決

在裝完 Windows Update 後,就算已經乖乖地重開機了,之後還是會固定地、從休眠中被喚醒一次

這樣的問題。

而當時,也有找到問題的元凶是系統「工作排程器」裡面的「\Microsoft\Windows\UpdateOrchestrator\Reboot」這個工作,也確認了只要把他停用,就不會有問題了。

但是,當 Windows 10 更新到 1709、也就是「Fall Creators Update」(秋季創作者更新)後,這個方法卻似乎無法使用了…

無法使用的原因,看來是因為微軟不想讓使用者不讓他重開,所以把這項工作的權限鎖死了

其實 Heresy 自己沒有碰到這個問題。會開始研究,主要是有人在《檢查是什麼東西把 Windows 喚醒的》這篇文章,反映要停用該項工作時,被要求輸入帳號密碼(參考)。

不過,以 Heresy 自己手邊的幾台電腦來說,或許是因為之前都有手動關閉吧?所以這項「Reboot」的工作是被鎖定在「停用」的狀態,但是有的人似乎被鎖在「啟用」的狀態。

而當想要把停用改成啟用的時候,在 Heresy 這邊會出現「您用來登入的使用者帳戶沒有權限可以啟用此工作。」的錯誤。

某些人(不確定是否為 Windows 版本的問題)則是就會被詢問帳號密碼,但是即使輸入管理者權限的帳號,還是無法修改。

如果直接去看這個工作檔案的安全性資訊的話,則也會發現他的安全性設定和其他檔案明顯不同,也不知道到底是怎麼設定成這樣的?
(工作排程的檔案都在C:\Windows\System32\Tasks\ 這個資料夾下,而這個工作則是他下面的 Microsoft\Windows\UpdateOrchestrator\Reboot 這個檔案;這些檔案的內容其實是 XML 檔案,有興趣可以用純文字編輯器看看內容)

而或許是因為工作管理員背後的機制很複雜,直接刪除、修改這個檔案,似乎無法讓工作管理員裡的內容更著變化…

後來又在網路上找了一陣子,最後發現《Windows 10 Fall Creators Update breaking sleep》這篇文章的最後,似乎給了一個有用的解法。

他的方法也滿有趣的,那就是直接讓所有人都不能存取這個檔案!他這邊是透過「icacls」這個 Windows 內建的檔案權限管理工作程式(官方文件)來做的,完整指令是:

icacls "c:\windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator\Reboot"
  /inheritance:r
  /deny "Everyone:F"
  /deny "SYSTEM:F"
  /deny "Local Service:F"
  /deny "Administrators:F"

上面的指令需要透過有管理者權限的命令提示字元來執行,執行時請自行將它合併成一行。

而這個指令的意思,就是先移除了所有繼承來的 ACE(access control entry),然後再拒絕 Eyeryone、SYSTEM、Local Service、Administrators 這四個帳號(群組)的所有存取權限了。

根據網友的回報,這個方法基本上是讓他的電腦不會再因為 reboot 這項工作重新開機了~

不過另一方面,這樣的方法,會不會造成 Windows Update 有奇怪的問題,由於 Heresy 自己電腦沒這個問題,也沒用過這方法,所以就不敢保證了。

但是,如果真的被這項工作的自動喚醒搞到很煩的話,就姑且試試看吧。


最後這邊也紀錄一下,這個檔案本來的權限:

NT AUTHORITY\SYSTEM:(F)
NT AUTHORITY\LOCAL SERVICE:(RX)
BUILTIN\Administrators:(RX)
NT AUTHORITY\SYSTEM:(R)

不過要怎麼改回原來的樣子…恩,不要問 Heresy。 XD

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s