建立金鑰發佈服務 KDS 根金鑰
這個 IT 專業人員文章描述如何使用 Windows PowerShell,在 Windows Server 2012 或更新版本中產生群組「受管理的服務帳戶」密碼,以便在網域控制站上建立「Microsoft 金鑰發佈服務」(kdssvc.dll) 的根金鑰。
網域控制站 (DC) 必須有根金鑰,才能開始產生 gMSA 密碼。 網域控制站最長會等待 10 小時 (從建立算起) 來允許所有網域控制站聚合它們的 AD 複寫,然後才允許建立 gMSA。 長達 10 小時的等待是一項安全措施,用來避免在環境中的所有 DC 都能夠回應 gMSA 要求之前就產生密碼。 當 gMSA 主機嘗試擷取密碼時,太早嘗試使用 gMSA 可能會失敗,因為可能尚未將金鑰複寫到所有網域控制站。 在使用具有有限複寫排程的 DC,或發生複寫問題時,也會發生 gMSA 密碼擷取失敗。
注意
刪除和重新建立根金鑰可能會導致因為金鑰快取而刪除後,舊金鑰繼續使用的問題。 如果重新建立根金鑰,則應在所有網域控制站上重新啟動金鑰發佈服務 (KDC)。
若要完成此程序,至少需要 Domain Admins 或 Enterprise Admins 群組的成員資格或同等權限。 如需使用適當帳戶和群組成員資格的詳細資料,請參閱 本機與網域的預設群組。
注意
若要執行用來管理群組「受管理的服務帳戶」的 Windows PowerShell 命令,必須有 64 位元架構。
使用 Add-KdsRootKey Cmdlet 來建立 KDS 根金鑰
在 Windows Server 2012 或更新版的網域控制站上,從工作列執行 Windows PowerShell。
在 Windows PowerShell Active Directory 模組的命令提示字元中,輸入下列命令,然後按 ENTER 鍵:
Add-KdsRootKey -EffectiveImmediately
提示
Effective 時間參數可用來指定使用金鑰前先將金鑰傳播到所有 DC 的時間。 使用 Add-KdsRootKey –EffectiveImmediately 時,會將根金鑰立即新增到 KDS 服務將使用的目標 DC。 不過,其他網域控制站將必須等到複寫成功後,才能使用該根金鑰。
KDS 根金鑰會儲存在容器 CN=Master Root Keys,CN=Group Key Distribution Service,CN=Services,CN=Configuration,DC=<forest name>;
中的 Active Directory 中。 這些金鑰擁有屬性 msKds-DomainID,其會連結到建立物件的網域控制站之電腦帳戶。 當此網域控制站遭到降級並從網域中移除時,此值會參考電腦帳戶的標記。 您可以忽略中斷的值,因為其只會用來協助管理員追蹤剛建立的物件。 您也可以變更屬性值,並將其指向樹系中另一個網域控制站的電腦物件。
對於只有一個 DC 的測試環境,您可以使用下列程序來建立 KDS 根金鑰,並設定一個過去的時間做為開始時間,以避開金鑰產生時的等候間隔。 請確認 4004 事件已記錄在 KDS 事件記錄檔中。
在測試環境中建立立即生效的 KDS 根金鑰
在 Windows Server 2012 或更新版的網域控制站上,從工作列執行 Windows PowerShell。
在 Windows PowerShell Active Directory 模組的命令提示字元中,輸入下列命令,然後按 ENTER 鍵:
$a=Get-Date
$b=$a.AddHours(-10)
Add-KdsRootKey -EffectiveTime $b
或使用單一命令
Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10))