Windows 組策略權限疑難解答
我被 Windows AD 域上的權限問題難住了。
我有一個 Windows Server 2008 伺服器(帶有幾個 Windows Server 2003 vm),它們都是域的成員(但絕不是備份控制器等 - 這是通過另一台伺服器處理的)。其中一些伺服器需要由通常只有域使用者權限的人管理,所以我創建了一個新組 (VMAdmins),將它們添加到其中並開始建構一個特定的 GPO 以應用於機器。
出於組策略和整潔的原因,VM 位於它們自己的 OU 中,我創建了一個連結到該特定 OU 的 GPO。
我已經在電腦配置>Windows 設置>安全設置>本地策略>使用者權限分配下為上述組分配了各種權限來測試理論。
我有 gpupdate /force 並退回伺服器並執行 rsop.msc 以確定應用的策略。該工具正確顯示在“源 GPO”下應用的 GPO,並且該組被列為具有該權限。
然而,問題的癥結所在;
whoami /priv 與 rsop.msc 所說的不一致,例如 rsop 表示使用者具有 Shutdown 權限,但在 whoami 下卻顯示“已禁用”。
誰能闡明為什麼會發生這種情況?
非常感謝,
湯姆
whoami /priv 顯示特權的目前狀態,而不是實際特權。您將使用域帳戶的“管理員”看到相同的內容。當您實際執行此操作時,它會“啟用”。
一個很好的解釋在這裡: http ://alt.pluralsight.com/wiki/default.aspx/Keith.GuideBook/WhatIsAPrivilege.html
從那裡引用:
可以通過範例展示特權的正常使用模式。假設您要重新啟動系統。您知道這是一項特權操作,因此您訪問您的程序令牌並嘗試啟用 SeShutdownPrivilege。如果您已被政策授予此特權,則您的令牌應該擁有它,因此您將被允許啟用它。如果您沒有被授予此權限,您啟用它的嘗試將失敗,此時您需要處理不允許您重新啟動系統的事實(在桌面應用程序中,您可以通知例如,她沒有使用消息框的權限的使用者)。假設您已成功啟用該權限,您將呼叫 Win32 函式 ExitWindowsEx 來請求重新啟動。最後,您應該禁用該權限。注意這裡的模式:啟用、使用、
因為您正在重新啟動系統,您可能會爭辯說禁用該權限是浪費時間。但是,正如您永遠不應該在不釋放記憶體的情況下偷懶並分配記憶體一樣,您也不應該在使用完特權後立即啟用特權而不禁用它。你永遠不知道誰會在另一個項目中剪切和粘貼你的程式碼!此外,常式如何知道重新啟動將實際發生以及您的程序將實際退出?通常,使用者只有在意識到需要先保存一些工作時才會啟動重新啟動以取消它。很難在負責實際執行重啟的常式中深入了解所有這些事情。確保您的每個安全原語(如特權使用)都遵循最佳實踐。不要走捷徑。
如果授予某些權限,則應始終啟用它們。SeChangeNotifyPrivilege(也稱為“繞過遍歷檢查”3)和 SeImpersonatePrivilege 是值得注意的範例。這些就像警察的手槍——他被授予在街上攜帶它的權利,沒有它他永遠不會上班。如果您通過策略獲得了這些特權中的任何一個,則作業系統將預設在您登錄時獲得的第一個令牌中啟用它們,因此您不必擔心在執行時會弄亂它們。許多 Win32 功能(但不是全部)為了方便而包含啟用和禁用權限。此外,我希望隨著 .NET Framework 繼續抽像出更多 Win32 API,您將不必擔心手動啟用權限。但這是一個技術細節。安全策略仍將控制誰可以和不能執行特權操作,因此您應該了解 Windows 定義的特權,以便了解您的程序對安全策略的要求。