วิธีการลบออบเจ็กต์อย่างถูกต้องเมื่อตั้งค่า -strict บน DCs จำนวนมากเป็นเวลานาน


16

เมื่อเร็ว ๆ นี้ฉันอยู่ในสภาพแวดล้อมที่มี 120 โดเมนคอนโทรลเลอร์ในกว่า 100 ไซต์ทั่วโลก โดเมนนี้เริ่มต้นในยุค Windows 2000 และได้รับการอัปเกรดเมื่อเวลาผ่านไปดังนั้นความสอดคล้องของการจำลองแบบที่เข้มงวดจึงไม่เคยถูกกำหนดเป็นค่าเริ่มต้นสำหรับ DCs ใหม่และไม่เคยเปิดใช้งานใน DC ใด ๆ มีวัตถุที่ค้างอยู่ในไดเรกทอรีและคุณจะเห็นวัตถุที่ขัดแย้งจำนวนพอสมควรเนื่องจากสิ่งนี้

การใช้repadmin /removelingeringobjectsต้องรู้สองสิ่ง:

  1. DC ใดที่มีออบเจ็กต์ที่อืดอาดอยู่ในฐานข้อมูล

  2. DC ที่ไม่มีวัตถุที่ค้างอยู่เพื่อใช้เป็น DC อ้างอิง

เห็นได้ชัดว่าในอนาคตสภาพแวดล้อมนี้ควรได้รับการตั้งค่าเพื่อให้พลใหม่ทั้งหมดมีการจำลองแบบสอดคล้องเข้มงวดการบังคับใช้และrepadmin /options * +strictควรจะทำงานเพื่อให้ทุก DCs ปัจจุบันใช้ความสอดคล้องการจำลองแบบเข้มงวดแต่ที่จะทำลายการจำลองแบบตอนนี้ไม่มีการทำความสะอาดวัตถุ

ดังนั้นคำถามของฉันคือสิ่งนี้: ในสภาพแวดล้อมขนาดใหญ่ที่ฉันไม่มีความคิดว่า DCs มีวัตถุอืดอาดและสิ่งใดที่ไม่มีฉันจะระบุ DC อ้างอิงที่ดีสำหรับrepadmin /removelingeringobjectsการใช้งานได้อย่างไรและฉันจะมั่นใจได้อย่างไรว่า 120 + ทั้งหมด DCs มีความสะอาดของวัตถุที่ยังอืดอาดอยู่ก่อนที่จะบังคับใช้ความสอดคล้องของการจำลองแบบที่เข้มงวด หรือว่าง่ายกว่าที่จะเปิดโหมดเข้มงวดและดูrepadmin /replsumเพื่อดูว่าตัวแบ่งและจัดการกับมันเป็นอย่างไร

คำตอบ:


11

ขั้นตอนนี้จะใช้เวลาในการแก้ไข

หากต้องการหยุดการจำลองแบบทั้งหมดให้เรียกใช้:

repadmin /options +DISABLE_OUTBOUND_REPL

ใน DC ทั้งหมด โปรดจำไว้ว่าการตั้งค่าด้านบนไม่ได้ป้องกันการดำเนินการจำลองแบบด้วยตนเองเช่นผู้ดูแลระบบ (คุณ) กำลังทำงานrepadmin /syncall /APedฯลฯ แต่นั่นเป็นสิ่งที่ดีเพราะช่วยให้คุณได้ DC ทั้งหมดของคุณกลับมาซิงค์กันทั้งหมดก่อนเปิดใช้งานการจำลองแบบปกติ

Repadmin พิจารณาว่าเป็นวัตถุที่ยังคงหลงเหลืออยู่ถ้ามีวัตถุอยู่บน ServerA แต่ไม่ใช่ใน ServerB โดยที่ ServerB นั้นเป็น DC อ้างอิง ความแตกต่างระหว่างการทำซ้ำวัตถุที่สร้างขึ้นใหม่และทำซ้ำการปรับปรุงไปยังวัตถุที่มีอยู่แล้วเป็นกุญแจสำคัญ การจำลองวัตถุที่สร้างขึ้นใหม่ = ดี การจำลองการอัพเดตไปยังวัตถุที่มีอยู่แล้ว = ดี การจำลองการอัพเดตไปยังวัตถุที่ไม่มีอยู่ในปลายทาง DC = ไม่ถูกต้อง

คุณจะต้องฟองล้างทำซ้ำจนกว่า DC ทั้งหมดจะตรงกับ DC อ้างอิงที่ดีอันหนึ่งของคุณ จากนั้นเปิดใช้งานความสอดคล้องที่เข้มงวดทุกที่จากนั้นเปิดใช้งานการจำลองแบบอีกครั้ง ใช่คุณมีความเสี่ยงในการลบวัตถุที่ถูกกฎหมายที่สร้างขึ้นใน DC ระยะไกลอื่น ๆ ที่ไม่ได้จำลองแบบไปยัง DC อ้างอิงของคุณ

จากบทความ " วิธีทำงานของการจำลองแบบไดเรกทอรีที่ใช้งานได้ดี ":

การตั้งค่าความสอดคล้องของการจำลองแบบ

ถ้าแอตทริบิวต์บนวัตถุที่ยังคงไม่เปลี่ยนแปลงวัตถุนั้นจะไม่ถูกพิจารณาว่าเป็นการจำลองแบบ อย่างไรก็ตามหากมีการเปลี่ยนแปลงคุณสมบัติแอตทริบิวต์นั้นจะถูกพิจารณาสำหรับการจำลองแบบขาออก เนื่องจากตัวควบคุมโดเมนปลายทางไม่เก็บวัตถุสำหรับแอตทริบิวต์ที่กำลังจำลองแบบการปรับปรุงไม่สามารถทำได้ วิธีแก้ไขเงื่อนไขนี้ขึ้นอยู่กับการตั้งค่าความสอดคล้องของการจำลองแบบบนตัวควบคุมโดเมน

การตั้งค่ารีจิสทรีในตัวควบคุมโดเมนที่ใช้ Windows Server 2003 หรือ Windows 2000 Server ด้วย SP3 ให้ค่าความสอดคล้องที่กำหนดว่าตัวควบคุมโดเมนทำซ้ำและ reanimates วัตถุที่มีการปรับปรุงที่ถูกลบจากแบบจำลองอื่น ๆ ทั้งหมดหรือว่าการจำลองวัตถุดังกล่าวเป็น อุดตัน การตั้งค่าเริ่มต้นจะแตกต่างกันในตัวควบคุมโดเมนที่ใช้ Windows 2000 Server ด้วย SP3 และ Windows Server 2003

ความสอดคล้องการจำลองแบบเข้มงวด

เมื่อต้องการหลีกเลี่ยงปัญหาเกี่ยวกับวัตถุ reanimating ที่ถูกลบตัวควบคุมโดเมนที่ใช้ Windows Server 2003 ในการสร้างขึ้นใหม่ (ไม่ปรับรุ่น) บล็อกการป่าไม้ Windows Server 2003 บล็อกการจำลองแบบขาเข้าโดยค่าเริ่มต้นเมื่อได้รับการปรับปรุงวัตถุที่ไม่มี .

หมายเหตุ•การจำลองแบบไดเรกทอรีที่ใช้งานอยู่ใช้การติดตามการปรับปรุงเพื่อแยกความแตกต่างระหว่างการจำลองวัตถุที่สร้างขึ้นใหม่และการปรับปรุงคุณลักษณะสำหรับวัตถุที่มีอยู่ การจำลองแบบวัตถุ lingering เป็นความพยายามในการปรับปรุงแอตทริบิวต์หรือคุณลักษณะของวัตถุที่ตัวควบคุมโดเมนปลายทางไม่สามารถปรับปรุงได้เนื่องจากไม่มีวัตถุ

การจำลองแบบถูกหยุดในพาร์ติชันไดเรกทอรีสำหรับวัตถุจนกว่าวัตถุ lingering ถูกเอาออกจากตัวควบคุมโดเมนต้นทางหรือการตั้งค่าความสอดคล้องของการจำลองแบบเข้มงวดถูกปิดใช้งาน

เมื่อ ServerB พูดกับ ServerA: "เฮ้มีการปรับปรุงบางอย่างกับ objectA ที่มีอยู่" จากนั้น ServerA จะบอกว่า: "รออะไรฉันยังไม่มี objectA เลยส่งวัตถุทั้งหมดมาให้ฉัน!" หากไม่มีความมั่นคงอย่างเข้มงวด หากความสอดคล้องที่เข้มงวด ServerA พูดว่า: "รออะไรคุณคาดหวังว่าฉันจะปรับปรุงวัตถุที่ไม่มีอยู่ได้อย่างไรไปรับงอ!"

ในการค้นหาว่าคุณมีวัตถุที่ค้างอยู่ในโดเมนคอนโทรลเลอร์หรือไม่ให้ทำดังนี้

repadmin /removelingeringobjects ServerName ServerGUID DirectoryPartition /advisory_mode 

ServerGUID เป็น DC อ้างอิงที่ดีที่รู้จักกันดี ฉันรู้ว่าคุณรู้เรื่องนี้อยู่แล้ว ... และจะเขียนสคริปต์บรรทัดด้านบนเพื่อเรียกใช้บน DC ทั้งหมด ... ( foreach ($DC In $(Get-ADDomain).ReplicaDirectoryServers) { }) ...

คุณต้องการ DC แหล่งที่ดีเพื่อเปรียบเทียบกับบรรทัดล่าง หากคุณไม่มีแหล่งจ่ายกระแสไฟดีที่รู้จักหรือไม่ทราบคุณต้องเลือกแหล่งที่มา ควรเป็น GC ที่เขียนได้แน่นอน มันสัมพันธ์กัน - ถ้าผู้ควบคุมโดเมนทั้งหมดเห็นด้วยกับการมีอยู่ของวัตถุและคุณลักษณะของวัตถุนั้น ... ก็ไม่ใช่วัตถุที่เอ้อระเหย

foreach($GC In $(Get-ADForest).GlobalCatalogs) { repadmin /removelingeringobjects $_.name 85d158d2-a006-4fff-b1e5-f9b6eaabab2b '$directoryPartition'

นั่นคือการซิงค์พาร์ติชันไดเรกทอรีนั้นใหม่ของ GC ทุกตัวในฟอเรสต์ด้วยแหล่งข้อมูลที่ดีซึ่งคุณต้องระบุเป็น GUID

จากนั้นหลังจากที่คุณได้รับตัวควบคุมโดเมนทั้งหมดของคุณอีกครั้งและข้อตกลงมีความสุข ... จากนั้นคุณไปและเริ่มพลิกความมั่นคงที่เข้มงวดในพวกเขาทั้งหมด

แก้ไข: นี่คือสายงานปาร์ตี้ของ Microsoft เกี่ยวกับปัญหาและสิ่งที่พวกเขาจะพูดถึงคุณคือให้คุณโทรหาพวกเขา

ท้ายที่สุดนี่อาจเป็นปัญหาในการแก้ไขมากกว่าที่จะคุ้มค่าเว้นแต่จะทำให้คุณเกิดปัญหา ฉันเกลียดที่จะพูด แต่โฆษณายังคงสามารถทำงานได้ตามปกติกับวัตถุที่ค้างอยู่ในนั้น


4

หลักการทั่วไปในกรณีที่คุณไม่สามารถระบุ DC สะอาดได้ดังต่อไปนี้:

for each $sourceDC in $allDCs
    for each $targetDC in $allDCs
        if ($targetDC <> $sourceDC) then
            run repadmin with $sourceDC and $targetDC
        end if
    next
next

กระบวนการนี้อธิบายไว้ที่นี่: http://blogs.technet.com/b/glennl/archive/2007/07/26/clean-that-active-directory-forest-of-lingering-objects.aspx

แต่จะดูที่ReplDiag มันเป็นกระบวนการอัตโนมัติโดยการเรียกใช้repadminสำหรับคุณจากการรวมกันของแหล่งที่มาและ DC เป้าหมาย จากนั้นติดตาม/advisory_onlyเพื่อตรวจสอบวัตถุที่ค้างอยู่


ยังคงมีอินเทอร์เฟซ 14,400 ที่สิ่งนี้จะทำงานผ่านในช่วงเวลานั้นวัตถุจำลองที่อืดอาดเพิ่มเติมสามารถจำลองแบบได้ตลอดทั้งไดเรกทอรี ขอแนะนำให้เปิดใช้งาน + เข้มงวดก่อนเพื่อให้การจำลองหยุดพักเพื่อหลีกเลี่ยงปัญหานี้หรือไม่ การทำซ้ำ 14,400 ครั้งจะใช้เวลานานพอสมควรในไดเรกทอรีที่มีขนาดนี้เพื่อให้สามารถทำการจำลองแบบที่ไม่ดีได้มากขึ้น
MDMarra

คุณสามารถทำขนานกับบางอย่างได้ไหม?
Tom O'Connor

@ TomO'Connor ความคิดที่น่าสนใจ ที่ควรเป็นไปได้ด้วย PowerShell remoting จากนั้นคุณสามารถให้ DC แต่ละตัวทำงานrepadminด้วยตัวเองได้ใน Parallel !!!
longneck

7
@MDMarra หากมันรวดเร็วและง่ายต่อการทำความสะอาดโดเมน 120-DC ที่ครอบคลุมทั่วโลกและอยู่ในตำแหน่งตั้งแต่ Win2k และอัปเกรดตลอดหลายรุ่นตั้งแต่นั้นมา ... จากนั้น บริษัท ก็จะได้รับภารโรงที่จะทำ ... ;)
Ryan Ries

1
ฉันรู้ว่าคุณมีเงินพันล้านดีซี แต่ผู้บริหารใช้ในการเปลี่ยนแปลงกี่คน? คุณสามารถเริ่มต้นด้วยการล้างข้อมูลนี้ด้วย DC และ DC ในไซต์เหล่านั้นจากนั้นตั้งค่าเข้มงวดกับ DC เหล่านั้น ดำเนินการต่อกับผู้อื่น ที่ควรจะลดปัญหาใด ๆ ที่เป็นไปได้
longneck
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.