提示: 若要檢視 2024 年 1 月的新內容或修訂的內容,請參閱文章中的 [2024 年 1 月 - 開始] 和 [End - 2024] 卷標。
摘要
Windows 更新於 2022 年 10 月 11 日及之後發行,包含 CVE-2022-38042 提供的額外保護。 這些保護會刻意防止網域加入作業在目標網域中重複使用現有的計算機帳戶,除非:
-
嘗試執行此作業的用戶是現有帳戶的建立者。
或者
-
計算機是由網域系統管理員成員所建立。
或者
-
正在重複使用的電腦帳戶擁有者是「域控制器:允許計算機帳戶在加入網域期間重複使用」的成員。 群組原則 設定。 此設定需要在 2023 年 3 月 14 日或之後於 ALL 成員電腦和域控制器上安裝 Windows 更新。
匯報 於 2023 年 3 月 14 日到 2023 年 9 月 12 日之後發行,將會為 Windows Server 2012 R2 及以上及所有受支援用戶端上受影響的客戶提供其他選項。 如需詳細資訊,請參閱 2022 年 10 月 11 日行為 和 採取行動 一節。
2022 年 10 月 11 日之前的行為
在您安裝 2022 年 10 月 11 日或更新版本的累積更新之前,用戶端計算機會針對名稱相同的現有帳戶查詢 Active Directory。 此查詢會在網域加入和計算機帳戶布建期間發生。 如果這類帳戶存在,客戶將會自動嘗試重複使用。
附註 如果嘗試加入網域作業的用戶沒有適當的寫入許可權,則重複使用嘗試將會失敗。 不過,如果使用者有足夠的許可權,網域加入將會成功。
網域加入有兩種案例,分別具有默認行為和標幟,如下所示:
-
NetJoinDomain (網域加入)
-
除非) 指定 NETSETUP_NO_ACCT_REUSE 標幟,否則帳戶重複使用 (的預設值
-
-
帳戶布建 (NetProvisionComputerAccountNetCreateProvisioningPackage) 。
-
除非指定NETSETUP_PROVISION_REUSE_ACCOUNT, 否則預設不會 重複使用 ( 。)
-
2022 年 10 月 11 日的行為
當您在用戶端電腦上安裝 2022 年 10 月 11 日或更新版本的 Windows 累積更新之後,在加入網域期間,用戶端會執行額外的安全性檢查,然後再嘗試重複使用現有的計算機帳戶。 演算法:
-
如果嘗試執行此作業的使用者是現有帳戶的建立者,則允許帳戶重複使用嘗試。
-
如果帳戶是由網域系統管理員成員所建立,則允許重複使用帳戶。
這些額外的安全性檢查是在嘗試加入電腦之前完成。 如果檢查成功,則聯結作業的其餘部分會像之前一樣受限於Active Directory 許可權。
這項變更不會影響新帳戶。
注意 安裝 2022 年 10 月 11 日或更新的 Windows 累積更新之後,使用電腦帳戶重複使用的網域加入可能會刻意失敗,並出現下列錯誤:
錯誤0xaac (2732) :NERR_AccountReuseBlockedByPolicy:「Active Directory 中存在名稱相同的帳戶。 重新使用帳戶已被安全策略封鎖」。
若是如此,帳戶即刻意受到新行為的保護。
發生上述錯誤后,事件標識碼 4101 便會觸發,並將問題記錄在 c:\windows\debug\netsetup.log。 請遵循下列「採取行動」中的步驟以了解失敗並解決問題。
2023 年 3 月 14 日的行為
在 2023 年 3 月 14 日或之後發行的 Windows 更新中,我們對安全性強化做了一些變更。 這些變更包含我們在 2022 年 10 月 11 日所做的所有變更。
首先,我們擴大了免除此強化功能之群組的範圍。 除了網域系統管理員之外,企業系統管理員和內建系統管理員群組現在可以免於擁有權檢查。
第二,我們實作了新的 群組原則 設定。 系統管理員可以使用它來指定信任的計算機帳戶擁有者允許清單。 如果下列其中一項為 True,計算機帳戶將會略過安全性檢查:
-
該帳戶由在「域控制器:允許計算機帳戶在加入網域期間重複使用」群組原則 指定為信任擁有者的使用者所擁有。
-
該帳戶由「域控制器:允許計算機帳戶在加入網域期間重複使用」群組原則 中指定為信任擁有者的群組成員的使用者所擁有。
若要使用此新 群組原則,域控制器和成員計算機必須一致地安裝 2023 年 3 月 14 日或更新版本。 有些人可能會有您在建立自動電腦帳戶時使用的特定帳戶。 如果這些帳戶不受濫用,而且您信任它們建立計算機帳戶,您可以免除這些帳戶。 在 2022 年 10 月 11 日 Windows 更新之前,您仍可安全地抵禦原本的弱點。
2023 年 9 月 12 日的行為
在 2023 年 9 月 12 日或之後發行的 Windows 更新中,我們對安全性強化做了一些額外的變更。 這些變更包含我們在 2022 年 10 月 11 日所做的所有變更,以及 2023 年 3 月 14 日的變更。
我們已解決無論原則設定為何,使用智慧卡驗證加入網域失敗的問題。 若要修正此問題,我們已將其餘的安全性檢查移回域控制器。 因此,在 2023 年 9 月的安全性更新之後,用戶端電腦會撥打已驗證的 SAMRPC 電話給域控制器,以執行與重複使用電腦帳戶相關的安全性驗證檢查。
不過,在設定下列原則的環境中,這可能會導致網域聯結失敗: 網路存取:限制允許遠端呼叫 SAM 的用戶端。 如需如何解決此問題的相關信息,請參閱一節。
我們也計劃在未來的 Windows 更新中移除原本 的 NetJoinLegacyAccount重複使用 登錄設定。 [2024 年 1 月 - 開始]這項移除作業暫訂排定於 2024 年 8 月 13 日的更新。 發行日期可能會變更。 [結束 - 2024 年 1 月]
附註 如果您已在用戶端上部署 NetJoinLegacyAccountReuse 金鑰,並將它設為值 1,您現在必須移除該金鑰 (或設為 0) 才能從最新變更獲益。
採取行動
使用域控制器上的 群組原則 來設定新的允許清單原則,並移除任何舊版的用戶端因應措施。 然後,執行下列動作:
-
您必須在所有成員計算機和域控制器上安裝 2023 年 9 月 12 日或更新版本。
-
在套用至所有域控制器的全新或現有組策略中,請在下列步驟中設定設定。
-
在 [計算機設定\原則\Windows 設定\安全性設定\Local Policies\Security Options ] 底下,按兩下 [ 域控制器:允許計算機帳戶在加入網域時重複使用]。
-
選 取 [定義此原則設定 ],<[編輯安全性...>] 。
-
使用物件選擇器將受信任計算機帳戶建立者和擁有者的使用者或群組新增至 [允許] 權 限。 (最佳作法是強烈建議您使用群組進行許可權。) 請勿新增執行網域加入的用戶帳戶。
警告: 將成員資格限制為受信任的用戶和服務帳戶。 請勿將已驗證的使用者、所有人或其他大型群組新增至此原則。 請改為將特定信任的使用者和服務帳戶新增至群組,並將這些群組新增至原則。
-
等待 群組原則 重新整理間隔,或在所有域控制器上執行 gpupdate /force。
-
確認已填入想要的 SDDL HKLM\System\CCS\Control\SAM – “ComputerAccountReuseAllowList” 登錄機碼。 請勿手動編輯登錄。
-
嘗試加入已安裝 2023 年 9 月 12 日或更新版本更新的電腦。 確定原則中列出的其中一個帳戶擁有計算機帳戶。 此外,請確定其登錄沒有啟用 NetJoinLegacyAccountReuse 金鑰, (設定為 1) 。 如果網域聯結失敗,請檢查 c:\windows\debug\netsetup.log。
如果您仍需要替代的因應措施,請檢閱計算機帳戶布建工作流程,並瞭解是否需要變更。
-
使用在目標網域中建立計算機帳戶的同一個帳戶來執行聯結作業。
-
如果現有帳戶過舊 (未使用) ,請先刪除該帳戶,再嘗試再次加入網域。
-
使用不存在的其他帳戶重新命名計算機並加入。
-
如果現有帳戶由受信任的安全性主體擁有,且系統管理員想要重複使用該帳戶,請依照一節中的指導方針來安裝 2023 年 9 月或更新版本的 Windows 更新,並設定允許清單。
使用 NetJoinLegacyAccount重複使用登錄機碼的重要指導方針
注意: 如果您選擇將此密鑰設定為因應這些保護措施,除非以下適當參照您的案例,否則您的環境將容易受到 CVE-2022-38042 的保護。 請勿在確認現有計算機物件的建立者/擁有者是安全且受信任的安全性主體的情況下使用此方法。
由於新 群組原則,您應該不再使用 NetJoinLegacyAccountReuse 登錄機碼。 [2024 年 1 月 - 開始]萬一您需要因應措施,我們會在接下來幾個月保留密鑰。 [結束 - 2024 年 1 月]如果您無法在案例中設定新的 GPO,我們強烈建議您連絡 Microsoft 支援服務。
路徑 |
HKLM\System\CurrentControlSet\Control\LSA |
類型 |
REG_DWORD |
姓名 |
NetJoinLegacyAccountReuse |
值 |
1 會忽略其他值。 |
附註Microsoft 將會 在未來的 Windows 更新中移除 NetJoinLegacyAccount重複使用 登錄設定的支援。 [2024 年 1 月 - 開始]這項移除作業暫訂排定於 2024 年 8 月 13 日的更新。 發行日期可能會變更。 [結束 - 2024 年 1 月]
非解溶性
-
在環境中的DCS和用戶端上安裝2023年9月12日或更新之後,請勿使用 NetJoinLegacyAccountReuse 登錄。 請改為依照採取動作中的步驟來設定新的 GPO。
-
請勿將服務帳戶或布建帳戶新增至網域系統管理員安全組。
-
除非刪除先前的擁有者帳戶,否則請勿手動編輯計算機帳戶上的安全性描述,以嘗試重新定義這類帳戶的擁有權。 當編輯擁有者可讓新檢查成功時,除非明確檢閱並移除,否則計算機帳戶可能會保留原始擁有者同樣有潛在風險、不需要的許可權。
-
請勿將 NetJoinLegacyAccountReuse 登錄機碼新增至基礎 OS 映射,因為該機碼只應暫時新增,並在網域加入完成後直接移除。
新事件記錄檔
事件記錄檔 |
系統 |
事件來源 |
Netjoin |
事件識別碼 |
4100 |
事件類型 |
資訊 |
事件文字 |
「在加入網域期間,連線的域控制器發現 Active Directory 中有一個具有相同名稱的現有電腦帳戶。 已允許嘗試重複使用此帳戶。 已搜尋域控制器:<域控制器名稱>現有計算機帳戶 DN:計算機帳戶> <DN 路徑。 如需詳細資訊,請參閱 https://go.microsoft.com/fwlink/?linkid=2202145。 |
事件記錄檔 |
SYSTEM |
事件來源 |
Netjoin |
事件識別碼 |
4101 |
事件類型 |
錯誤 |
事件文字 |
在加入網域期間,網域控制器連絡的使用者在 Active Directory 中找到一個具有相同名稱的現有電腦帳戶。 基於安全性考慮,無法嘗試重複使用此帳戶。 域控制器已搜尋:現有的計算機帳戶 DN:錯誤碼 <錯誤碼>。 如需詳細資訊,請參閱 https://go.microsoft.com/fwlink/?linkid=2202145。 |
根據預設,偵錯記錄功能 (不需要在所有用戶端計算機上啟用 C:\Windows\Debug\netsetup.log 中的任何詳細資訊記錄) 。
基於安全性考慮,無法重複使用帳戶時產生的偵錯記錄範例:
NetpGetComputerObjectDn: Crack results: (Account already exists) DN = CN=Computer2,CN=Computers,DC=contoso,DC=com
NetpGetADObjectOwnerAttributes: Looking up attributes for machine account: CN=Computer2,CN=Computers,DC=contoso,DC=com
NetpCheckIfAccountShouldBeReused: Account was created through joinpriv and does not belong to this user. Blocking re-use of account.
NetpCheckIfAccountShouldBeReused:fReuseAllowed: FALSE, NetStatus:0x0
NetpModifyComputerObjectInDs: Account exists and re-use is blocked by policy. Error: 0xaac
NetpProvisionComputerAccount: LDAP creation failed: 0xaac
ldap_unbind status: 0x0
NetpJoinCreatePackagePart: status:0xaac.
NetpJoinDomainOnDs: Function exits with status of: 0xaac
NetpJoinDomainOnDs: status of disconnecting from '\\DC1.contoso.com': 0x0
NetpResetIDNEncoding: DnsDisableIdnEncoding(RESETALL) on 'contoso.com' returned 0x0
NetpJoinDomainOnDs: NetpResetIDNEncoding on 'contoso.com': 0x0
NetpDoDomainJoin: status: 0xaac
2023年3月新增的活動
此更新會在域控制器上的 SYSTEM 記錄檔中新增 4 (4) 新事件,如下所示:
事件層級 |
資訊 |
事件標識碼 |
16995 |
日誌 |
SYSTEM |
事件來源 |
Directory-Services-SAM |
事件文字 |
安全性帳戶管理員使用指定的安全性描述來驗證在網域加入期間計算機帳戶重複使用嘗試。 SDDL 值:<SDDL String> 此允許清單是透過 Active Directory 中的組策略來設定。 如需詳細資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=2202145。 |
事件層級 |
錯誤 |
事件標識碼 |
16996 |
日誌 |
SYSTEM |
事件來源 |
Directory-Services-SAM |
事件文字 |
包含電腦帳戶重複使用允許清單用來驗證用戶端要求網域加入會發生錯誤格式的安全性描述。 SDDL 值:<SDDL String> 此允許清單是透過 Active Directory 中的組策略來設定。 若要修正此問題,系統管理員必須更新原則,將此值設定為有效的安全性描述者或將其停用。 如需詳細資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=2202145。 |
事件層級 |
錯誤 |
事件標識碼 |
16997 |
日誌 |
SYSTEM |
事件來源 |
Directory-Services-SAM |
事件文字 |
安全性帳戶管理員發現計算機帳戶看起來是孤立的,而且沒有現有的擁有者。 計算機帳戶:S-1-5-xxx 計算機帳戶擁有者:S-1-5-xxx 如需詳細資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=2202145。 |
事件層級 |
警告 |
事件標識碼 |
16998 |
日誌 |
SYSTEM |
事件來源 |
Directory-Services-SAM |
事件文字 |
安全性帳戶管理員拒絕客戶在加入網域期間重新使用計算機帳戶的要求。 計算機帳戶和用戶端身分識別不符合安全性驗證檢查。 客戶端帳戶:S-1-5-xxx 計算機帳戶:S-1-5-xxx 計算機帳戶擁有者:S-1-5-xxx 檢查此事件的記錄數據是否有 NT 錯誤碼。 如需詳細資訊,請參閱 http://go.microsoft.com/fwlink/?LinkId=2202145。 |
如有需要,netsetup.log 可以提供更多資訊。 請參閱下列使用中計算機的範例。
NetpReadAccountReuseModeFromAD: Searching '<WKGUID=AB1D30F3768811D1ADED00C04FD8D5CD,DC=contoso,DC=com>' for '(&(ObjectClass=ServiceConnectionPoint)(KeyWords=NetJoin*))'.
NetpReadAccountReuseModeFromAD: Got 0 Entries.
Returning NetStatus: 0, ADReuseMode: 0
IsLegacyAccountReuseSetInRegistry: RegQueryValueEx for 'NetJoinLegacyAccountReuse' returned Status: 0x2.
IsLegacyAccountReuseSetInRegistry returning: 'FALSE''.
NetpDsValidateComputerAccountReuseAttempt: returning NtStatus: 0, NetStatus: 0
NetpDsValidateComputerAccountReuseAttempt: returning Result: TRUE
NetpCheckIfAccountShouldBeReused: Active Directory Policy check returned NetStatus:0x0.
NetpCheckIfAccountShouldBeReused: Account re-use attempt was permitted by Active Directory Policy.
NetpCheckIfAccountShouldBeReused:fReuseAllowed: TRUE, NetStatus:0x0
已知問題
問題 1 |
安裝 2023 年 9 月 12 日或更新版本之後,在設定下列原則的環境中,網域加入可能會失敗:網路存取 - 限制允許撥打遠端電話給 SAM 的用戶端 - Windows 安全性 |Microsoft Learn。 這是因為用戶端電腦現在會撥打已驗證的 SAMRPC 電話給域控制器,以執行與重複使用電腦帳戶相關的安全性驗證檢查。 發生此問題的 netsetup.log 範例:
|
問題 2 |
如果已刪除電腦擁有者帳戶,並嘗試重複使用計算機帳戶,系統事件記錄檔將會記錄事件 16997。 如果發生這種情況,可以重新指派擁有權給其他帳戶或群組。 |
問題 3 |
如果只有用戶端有 2023 年 3 月 14 日或更新版本的更新,Active Directory 原則檢查會傳回0x32 STATUS_NOT_SUPPORTED。 先前在 11 月 Hotfix 中實作的檢查將套用如下所示:
|