จะสำรองตัวควบคุมโดเมน Active Directory ได้อย่างไร
ในบทความนี้ เราจะพูดถึงการสำรองข้อมูลตัวควบคุมโดเมน Active Directory และเรียนรู้วิธีกำหนดค่าการสำรองข้อมูล AD อัตโนมัติโดยใช้ PowerShell และเครื่องมือ Windows Server ในตัว
ฉันจำเป็นต้องสำรอง Active Directory หรือไม่
หลายครั้งที่ฉันได้ยินจากเพื่อนผู้ดูแลระบบว่าถ้าคุณมีตัวควบคุมโดเมนหลายตัว (3, 8 เป็นต้น) ที่กระจายไปตามตำแหน่งที่ตั้งทางภูมิศาสตร์ต่างๆ คุณไม่จำเป็นต้องสำรองข้อมูลโฆษณาของคุณเลย เนื่องจากมี DC หลายตัว คุณได้ระบุการยอมรับข้อบกพร่องของโดเมน เป็นสคีมาเมื่อความล้มเหลวพร้อมกันของ DC ทั้งหมดมีแนวโน้มที่จะเป็น 0 และถ้าตัวควบคุมโดเมนตัวใดตัวหนึ่งล้มเหลว คุณสามารถปรับใช้ตัวควบคุมใหม่ได้อย่างรวดเร็วบนไซต์เดียวกันและนำตัวควบคุมเก่าออกโดยใช้ ntdsutil
อย่างไรก็ตาม ในทางปฏิบัติของฉัน ฉันได้พบกับสถานการณ์ต่างๆ เมื่อตัวควบคุมโดเมนทั้งหมดเสียหาย: ในกรณีหนึ่ง ตัวควบคุมโดเมนทั้งหมด (แม้ว่าจะมีมากกว่า 20 ตัวในเมืองต่างๆ) ถูกเข้ารหัสเนื่องจากการจับรหัสผ่านของผู้ดูแลระบบโดเมนโดย แรนซัมแวร์ที่ใช้เครื่องมือ mimikatz ในอีกกรณีหนึ่ง การจำลองแบบของไฟล์ NTDS.DIT ที่เสียหายส่งผลให้โดเมนล้มเหลว
คุณจึงสามารถและควรสำรอง AD ของคุณ คุณต้องสำรองข้อมูลอย่างน้อยตัวควบคุมโดเมนหลักและเจ้าของบทบาท FSMO (Flexible single-master operation) อย่างสม่ำเสมอ คุณสามารถรับรายการตัวควบคุมโดเมนที่มีบทบาท FSMO โดยใช้คำสั่งนี้:
netdom query fsmoรับวันที่สำรองตัวควบคุมโดเมน Active Directory ล่าสุด
คุณสามารถตรวจสอบว่าตัวควบคุมโดเมน Active Directory ปัจจุบันสำรองข้อมูลครั้งล่าสุดเมื่อใดโดยใช้เครื่องมือ repadmin:
repadmin /showbackup
คุณจะเห็นว่าในตัวอย่างนี้ ครั้งสุดท้ายที่มีการสำรองข้อมูลพาร์ติชัน DC และ AD คือวันที่ 2017-02-18 (เป็นไปได้ว่าการสำรองข้อมูลยังไม่เสร็จสิ้นตั้งแต่มีการติดตั้งตัวควบคุมโดเมน)
คุณสามารถรับสถานะการสำรองข้อมูลสำหรับ DC ทั้งหมดในโดเมนได้โดยใช้คำสั่งนี้:
repadmin /showbackup *หากตัวควบคุมโดเมนของคุณทำงานบนเครื่องเสมือนและคุณสำรองข้อมูลโดยใช้สแน็ปช็อต (ดูตัวอย่างด้วยการสำรองข้อมูล Hyper-V) วันที่สำรองจะไม่ได้รับการอัปเดตด้วยเหตุผลที่ชัดเจน เครื่องมือสำรองข้อมูลสมัยใหม่ส่วนใหญ่มีตัวเลือกที่คุณสามารถตรวจสอบเพื่อระบุว่าเป็น DC และต้องอัปเดตข้อมูลในไดเร็กทอรี LDAP ระหว่างการสำรองข้อมูล
การสำรองข้อมูล AD Domain Controller โดยใช้ Windows Server Backup
หากคุณไม่มีซอฟต์แวร์สำรองข้อมูลพิเศษ คุณสามารถใช้ Windows Server Backup ในตัว (ส่วนประกอบนี้ได้แทนที่เครื่องมือ NTBackup) คุณสามารถกำหนดค่างานสำรองข้อมูลอัตโนมัติใน Windows Server Backup GUI ได้ แต่มีข้อจำกัดบางประการ ข้อเสียเปรียบหลักคือการสำรองข้อมูลเซิร์ฟเวอร์ใหม่จะเขียนทับเซิร์ฟเวอร์ก่อนหน้าเสมอ
เมื่อคุณสำรองข้อมูลตัวควบคุมโดเมนโดยใช้ WSB คุณจะสร้างข้อมูลสำรอง สถานะระบบ สถานะระบบประกอบด้วยฐานข้อมูล Active Directory (NTDS.DIT), วัตถุนโยบายกลุ่ม, เนื้อหาไดเรกทอรี SYSVOL, รีจิสทรี, ข้อมูลเมตาของ IIS, ฐานข้อมูล AD CS และไฟล์ระบบและทรัพยากรอื่นๆ การสำรองข้อมูลถูกสร้างขึ้นผ่าน Volume Shadow Copy Service (VSS)
คุณสามารถตรวจสอบว่ามีการติดตั้ง Windows Server Backup โดยใช้ Get-WindowsFeature PowerShell cmdlet:
Get-WindowsFeature Windows-Server-Backupหากไม่ได้ติดตั้ง WSB คุณสามารถเพิ่มด้วย PowerShell:
Add-Windowsfeature Windows-Server-Backup -Includeallsubfeatureหรือติดตั้ง Windows Server Backup ผ่าน Server Manager -> Features
ฉันจะบันทึกข้อมูลสำรองของตัวควบคุมโดเมน AD นี้ไปยังโฟลเดอร์เครือข่ายที่ใช้ร่วมกันบนเซิร์ฟเวอร์สำรองข้อมูลเฉพาะ ตัวอย่างเช่น เส้นทางไปยังไดเรกทอรีสำรองอาจมีลักษณะดังนี้:
\\mun-back1\backup\dc01. กำหนดค่าสิทธิ์ NTFS สำหรับโฟลเดอร์นี้: ให้สิทธิ์การอ่านและเขียนแก่กลุ่ม Domain Admins และ Domain Controllers เท่านั้น
การสำรองข้อมูล Active Directory ด้วย PowerShell
ลองสำรองตัวควบคุมโดเมนโดยใช้ PowerShell ในการเก็บสำเนาสำรอง AD หลายระดับ เราจะจัดเก็บสำเนาสำรองแต่ละชุดในไดเร็กทอรีแยกต่างหากโดยมีวันที่สร้างข้อมูลสำรองเป็นชื่อโฟลเดอร์
Import-Module ServerManager
[string]$date = get-date -f 'yyyy-MM-dd'
$path=”\\mun-back1\backup\dc1\”
$TargetUNC=$path+$date
$TestTargetUNC= Test-Path -Path $TargetUNC
if (!($TestTargetUNC)){
New-Item -Path $TargetUNC -ItemType directory
}
$WBadmin_cmd = "wbadmin.exe START BACKUP -backupTarget:$TargetUNC -systemState -noverify -vssCopy -quiet"
Invoke-Expression $WBadmin_cmdเรียกใช้สคริปต์ PowerShell คอนโซล wbadmin จะปรากฏขึ้น มีข้อมูลเกี่ยวกับกระบวนการสร้างสำเนาสำรองของดิสก์ (สำเนาเงา):
The backup operation to \\mun-back1\backup\dc1\2020-06-01 is starting.
Creating a shadow copy of the volumes specified for backup...ความพยายามครั้งแรกของฉันในการสำรองข้อมูล DC ล้มเหลวโดยมีข้อผิดพลาด (ตัวควบคุมโดเมนคือเครื่องเสมือน VMWare):
Detailed error: The filename, directory name, or volume label syntax is incorrect.
The backup of the system state failed [01.06.2020 8:31].ฉันเปิดบันทึกข้อผิดพลาด WSB — C:\Windows\Logs\WindowsServerBackup\Backup_Error-01-06-2020_09-23-14.log
มีข้อผิดพลาดต่อไปนี้ในไฟล์:
Error in backup of C:\windows\\systemroot\ during enumerate: Error [0x8007007b] The filename, directory name, or volume label syntax is incorrect.
มองไปข้างหน้า ฉันจะบอกว่าปัญหาอยู่ในเส้นทางที่ไม่ถูกต้องของไดรเวอร์ VMWware Tools
ในการแก้ไขข้อผิดพลาด ให้เริ่มพร้อมท์คำสั่ง elevate แล้วรันคำสั่งนี้:
DiskShadow /L writers.txt
list writers detailedหลังจากได้รายชื่อแล้ว ให้พิมพ์ exit แล้วเปิด C:\Windows\System32\writers.txt ค้นหาสตริงที่มี “windows\” อยู่ในนั้น
ในกรณีของฉัน สตริงที่ฉันพบมีลักษณะดังนี้:
File List: Path = c:\windows\\systemroot\system32\drivers, Filespec = vsock.sysอย่างที่คุณเห็น มีการใช้เส้นทางที่ไม่ถูกต้องไปยังไดรเวอร์ VSOCK.SYS
หากต้องการแก้ไขเส้นทาง ให้เปิด Registry Editor แล้วไปที่คีย์ reg HKLM\SYSTEM\CurrentControlSet\Services sock
เปลี่ยนค่า ImagePath จาก
\systemroot\system32\DRIVERS\vsock.sysถึง
System32\DRIVERS\vsock.sysเรียกใช้สคริปต์สำรองข้อมูลอีกครั้ง
หากการสำรองข้อมูลสำเร็จ คุณจะเห็นข้อความต่อไปนี้ในบันทึก:
The backup operation successfully completed.
The backup of volume (C:) completed successfully.
The backup of the system state successfully completed [01.06.2020 09:52].ตรวจสอบเวลาของการสำรองข้อมูล DC ล่าสุด:
repadmin /showbackupตอนนี้บอกว่ามีการสำรองข้อมูลตัวควบคุมโดเมนล่าสุดในวันนี้
ขนาดของไดเร็กทอรีที่มีการสำรองข้อมูลตัวควบคุมโดเมนบนเซิร์ฟเวอร์คือประมาณ 9GB อันที่จริง เรามีไฟล์ VHDX ที่คุณสามารถใช้เพื่อกู้คืนระบบปฏิบัติการจาก WSB หรือคุณสามารถเมานต์ไฟล์ VHDX ด้วยตนเองและคัดลอกไฟล์หรือโฟลเดอร์ที่คุณต้องการจากไฟล์นั้น
หากมี DC หลายรายการใน Active Directory คุณไม่จำเป็นต้องสำรองข้อมูลทั้งหมด เพื่อประหยัดพื้นที่ เพียงสำรองฐานข้อมูล Active Directory เป็นระยะๆ — ไฟล์ ntds.dit ในการดำเนินการ ให้ใช้คำสั่งเหล่านี้:
$WBadmin_cmd = "wbadmin start backup -backuptarget:$path -include:C:\Windows\NTDS\ntds.dit -quiet"
Invoke-Expression $WBadmin_cmdขนาดของการสำรองข้อมูลดังกล่าวจะมีเพียง 50-500MB ขึ้นอยู่กับขนาดฐานข้อมูล AD
สำหรับการสำรองข้อมูล AD อัตโนมัติ ให้สร้างสคริปต์ C:\PS\Backup_AD_DC.ps1 บน DC ของคุณ เรียกใช้ตามกำหนดเวลาโดยใช้ ตัวกำหนดเวลางาน คุณสามารถสร้างงานตัวจัดกำหนดการจาก GUI หรือด้วย PowerShell ข้อกำหนดหลักคืองานจะต้องดำเนินการภายใต้
NT AUTHORITY\SYSTEMบัญชีที่เลือกตัวเลือก เรียกใช้ด้วยสิทธิ์สูงสุด สำหรับการสำรองข้อมูลตัวควบคุมโดเมน AD รายวัน ให้สร้างงานตามกำหนดการต่อไปนี้:
$Trigger= New-ScheduledTaskTrigger -At 02:00am -Daily
$User= "NT AUTHORITY\SYSTEM"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "C:\PS\Backup_AD_DC.ps1"
Register-ScheduledTask -TaskName "BackupAD-DC-daily" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest -Forceดังนั้นเราจึงได้กำหนดค่าการสำรองข้อมูล AD และเราจะพูดถึงวิธีการกู้คืน AD จากการสำรองข้อมูลสถานะระบบของตัวควบคุมโดเมนในบทความถัดไปของเรา









