工作安全性強化

使用工作安全性強化功能可讓工作擁有者以最低必要許可權執行其工作。 請注意,此功能預設為啟用,工作擁有者可以使用工作進程權杖安全性識別碼類型和工作所需的許可權陣列進一步調整。

工作進程權杖 SID 類型和工作必要許可權陣列

在工作定義層級指定 ProcessTokenSidType 可讓工作擁有者要求工作進程以 「none」 SID 類型或 「unrestricted」 SID 類型執行。 如果欄位存在於工作定義中,驗證可確保工作 UserId 包含其中一個作業系統內建服務帳戶的名稱或對應的 SID 字串:「NETWORK SERVICE」 或 「LOCAL SERVICE」。

SID 類型 「none」 表示工作在不包含進程權杖 SID 的進程中執行, (不會變更進程權杖群組清單) 。 在此情況下,工作主體帳戶 SID (LocalService/NetworkService) 具有進程權杖的完整存取權。

「不受限制」SID 類型表示工作 SID 將衍生自完整工作路徑,並新增至進程權杖群組清單。 例如,在本機服務帳戶中執行的 \Microsoft\Windows\RAC\RACTask,工作 SID 衍生自名稱 Microsoft-Windows-RAC-RACTask,其中 「-」 會取代 「\」,因為 「\」 是不正確使用者名稱字元。 工作 SID 的已知組名會是 「NT TASK\ < modified full task path > 」 (domainname\username 格式) 。 進程權杖預設的任意存取控制清單 (DACL) 也會修改為只允許完全控制工作 SID 和本機系統 SID,以及工作主體帳戶 SID 的讀取控制。 「schtasks.exe /showid /tn < 完整工作路徑 > 」 會顯示對應至工作的工作 SID。

當非 COM 工作動作啟動時,排程引擎會在工作主體帳戶上記錄、取得進程權杖,並查詢權杖擁有的許可權清單,然後將它與 RequiredPrivileges 中指定的許可權清單進行比較。 如果未在後者中指定許可權,則會標示為SE_PRIVILEGE_REMOVED。 接著,可執行檔動作會使用 CreateProcessAsUser API 來啟動產生的權杖控制碼。

COM 工作動作啟動時,必須由taskhost.exe進程啟動。 排程引擎會使用與開始工作相同的帳戶,查詢每個執行中taskhost.exe的內容區塊。 如果發現主機進程是以啟動工作所需的許可權超集合啟動,則該工作就會裝載在該進程中。 如果找不到這類進程,它會結合工作主體帳戶下 taskhosts 中執行之所有工作的強化資訊與指定的 RequiredPrivileges 遮罩,然後啟動新的 taskhost.exe 實例。

如果工作定義中沒有 RequiredPrivileges,則沒有 SeImpersonatePrivilege 的工作主體帳戶預設許可權將用於工作處理常式。 如果工作定義中沒有 ProcessTokenSidType ,則會使用 「unrestricted」 做為預設值。

工作註冊資訊

關於工作排程器

工作的安全性內容