Powershell for Windows

21.07.2009

Как удаленно перезагрузить контроллер домена Windows 2003 в DSRM

Filed under: Windows — Метки: , , , , , — Yamshikov Pavel @ 8:40 дп

Порой возникают ситуации, когда приходится администрировать инфраструктуры удаленно через RDP. Долго ли, коротко ли, приходит время перезагрузить контроллер домена в Directory Services Restore Mode (DSRM). Если контроллер доступен по RDP, т.е. ситуация не внештатная (например, необходимо перенести базу AD на другой диск), всё можно элегантно сделать не выезжая на точку. Поможет нам в этом утилита bootcfg. Подключаемся к контроллеру по RDP с полномочиями администратора домена.

Часть 1. Подготовительные действия.

Шаг 1. Смотрим содержимое файла boot.ini:

bootcfg /s имя_контроллера /query

Boot Loader Settings
——————–
timeout:30
default:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

Boot Entries
————
Boot entry ID: 1
OS Friendly Name: Windows Server 2003 Enterprise x64 Edition
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optout /fastdetect

Шаг 2. Добавляем строку загрузки для DSRM:

bootcfg /s имя_контроллера /copy /id 1 /d DSRM

SUCCESS: Made a copy of the boot entry “1″

Теперь записей в boot.ini две:

bootcfg /s имя_контроллера /query

Boot Loader Settings
——————–
timeout:30
default:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

Boot Entries
————
Boot entry ID: 1
OS Friendly Name: Windows Server 2003 Enterprise x64 Edition
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optout /fastdetect

Boot entry ID: 2
OS Friendly Name: DSRM
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optout /fastdetect

Шаг 3. Добавляем ключ загрузки в DSRM для второй записи

bootcfg /s имя_контроллера /raw “/SAFEBOOT:DSREPAIR” /a /id 2

SUCCESS: Added the switch to OS entry for line “2″ in the BOOT.INI file.

Теперь вторая запись в boot.ini имеет дополнительный ключ:

bootcfg /s имя_контроллера /query

Boot Loader Settings
——————–
timeout:30
default:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

Boot Entries
————
Boot entry ID: 1
OS Friendly Name: Windows Server 2003 Enterprise x64 Edition
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optout /fastdetect

Boot entry ID: 2
OS Friendly Name: DSRM
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optout /fastdetect /safeboot:dsrepair

Собственно, всё. В качестве полировки можно изменить дефалтное время выбора варианта загрузки с 30 секунд до, предположим, пяти:

bootcfg /s имя_контроллера /timeout 5

SUCCESS: Changed the timeout value in the BOOT.INI.

bootcfg /s имя_контроллера /query

Boot Loader Settings
——————–
timeout:5
default:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

Boot Entries
————
Boot entry ID: 1
OS Friendly Name: Windows Server 2003 Enterprise x64 Edition
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optout /fastdetect

Boot entry ID: 2
OS Friendly Name: DSRM
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optout /fastdetect /safeboot:dsrepair

Часть 2. Перезагрузка.

Перед перезагрузкой сервера в DSRM необходимо обозначить в качестве загрузки по умолчанию второй, только что созданный вариант «DSRM»:

bootcfg /s имя_контроллера /default /id 2

SUCCESS: Changed the default OS entry in the BOOT.INI.

Проверяем результат:

bootcfg /s имя_контроллера /query

Boot Loader Settings
——————–
timeout:5
default:multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

Boot Entries
————
Boot entry ID: 1
OS Friendly Name: DSRM
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optout /fastdetect /safeboot:dsrepair

Boot entry ID: 2
OS Friendly Name: Windows Server 2003 Enterprise x64 Edition
Path: multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
OS Load Options: /noexecute=optout /fastdetect

Выполняем перезагрузку контроллера:

shutdown /r /t 10 /f

Часть 3. Работы в DSRM.

Терминальные службы работают в DSRM. После старта системы можно зайти в нее под логином и паролем администратора восстановления и произвести требуемые действия. Предположим, мне необходимо провести сжатие и дефрагментацию базы AD и ее перемещение на другой диск.

ntdsutil –> files –> info –> compact to C:\NTDS.NEW –> quit –> quit

copy “C:\NTDS.NEW\ntds.sit” “C:\WINDOWS\NTDS\ntds.dit” (owerwrite = yes)

del C:\WINDOWS\NTDS\*.log

ntdsutil –> files –> info –> move db to D:\NTDS

move logs to D:\NTDS

quit –> quit

delete C:\NTDS.NEW

Теперь, когда работы завершены, необходимо вернуть первоначальную конфигурацию загрузки в boot.ini, чтобы после перезагрузки контроллер поднялся в рабочем режиме. Для этого выполняем команды:

bootcfg /s имя_контроллера /query

bootcfg /s имя_контроллера /default /id 2

shutdown /r /t 10 /f

Контроллер перезагрузится в штатном режиме.

Источник

Блог на WordPress.com.