Robocopy не работает для резервного копирования снимков Active Directory
Я пытаюсь автоматизировать резервное копирование базы данных Active Directory в Windows 2008 (ntds.dit).
Подключенные снимки AD создаются в C:\$SNAPxxxxxxxxxx\Windows\NTDS. Сценарий ниже работает для создания, монтирования, размонтирования и удаления снимков AD.
Что не работает, так это робокопия. Выше линии robocopy я перехожу в каталог, содержащий смонтированный снимок. Затем я приказываю Windows скопировать этот каталог и его содержимое (/s) в C:\ad_backups. Вместо того, чтобы копировать содержимое каталога C:\$SNAPxxxxxxxxxx\, robocopy начинает копирование всего диска C: в C:\ad_backups. Почему? Права доступа?
Я также обнаружил, что если вы используете проводник Windows для перехода к C:\$SNAPxxxxxxxxxx\, эта папка отображается в виде ярлыка (почти как символическая ссылка в linux). Двойной щелчок возвращает вас к C: \, хотя в адресной строке Windows Explorer отображается C:\$SNAPxxxxxxxxxx.
rem unmount all mounted snapshots if any
ntdsutil snapshot "list all" "unmount *" quit quit
rem delete all existing snapshots if any
ntdsutil snapshot "list all" "delete *" quit quit
rem create a new snapshot
ntdsutil snapshot "activate instance ntds" create quit quit
rem mount the snapshot
ntdsutil snapshot "list all" "mount 1" quit quit
rem Change directory to C:\snapshot_location
cd c:\*snap*
rem copy snapshot contents to C:\ad_backups
robocopy . C:\ad_backups\ /s
rem unmount and delete the snapshot
ntdsutil snapshot "list all" "unmount *" quit quit
ntdsutil snapshot "list all" "delete *" quit quit
ОБНОВЛЕНИЕ 14.02.2014
За @arcesso я изменился
cd c:\*snap*
в
cd c:\*snap*\windows\ntds
Теперь, когда я пытаюсь использовать dsamain для раскрытия информации в резервном снимке AD, я получаю ошибки. Кажется, dsamain любит работать только со снимками, которые смонтированы через ntdsutil. Кроме того, ntdsutil не имеет возможности изменить каталоги на c:\ad_backups для монтирования снимка.
C:\Windows\system32>dsamain -dbpath C:\ad_backups -ldapport 10389
EVENTLOG (Error): NTDS General / Internal Processing : 1003
Active Directory Domain Services could not be initialized.
The directory service cannot recover from this error.
User Action
Restore the local directory service from backup media.
Additional Data
Error value:
-1032 JET_errFileAccessDenied, Cannot access file, the file is locked or in use
EVENTLOG (Informational): NTDS General / Service Control : 1004
Active Directory Domain Services was shut down successfully.
Я получил те же ошибки выше, когда делал ручную VSS-копию C:\Windows\NTDS* и пытался использовать dsamain.
2 ответа
Понял... Мне нужно было добавить ntds.dit к пути.
C:\Windows\system32>dsamain -dbpath C:\ad_backups\ntds.dit -ldapport 10389
EVENTLOG (Informational): NTDS General / Service Control : 1000
Microsoft Active Directory Domain Services startup complete, version 6.0.6002.18 781
Похоже, вы почти ответили на свой вопрос. Если C:\$SNAPxxxxxxxxxx\
идет к C:\
но тебе нужно C:\$SNAPxxxxxxxxxx\Windows\NTDS
почему бы просто не пойти в C:\windows\NTDS
и пропустить проблему?