Как построить файл ответов для мастера

В двух предыдущих статьях я описывал способ создания простых пакетных файлов, которые позволяют автоматически конфигурировать контроллеры доменов (DC), а также домены, деревья и леса. Польза от таких пакетных файлов очень большая по нескольким причинам. Во-первых, любой план по восстановлению после сбоя, основанный на пакетных файлах такого типа, будет хорош, поскольку он позволяет начать с только что установленной свежей копии Windows Server 2003 или Windows 2000 Server. Введя всего несколько команд, пользователь получает полнофункциональный лес, восстановленный с нуля. Во-вторых, даже если пользователю никогда не бывают нужны инструменты восстановления после сбоя, он может задействовать пакетный файл для построения небольшой тестовой сети, имитирующей сеть предприятия, и свободно обкатывать в ней различные приложения. В-третьих, этот пакетный файл наглядно демонстрирует преимущества автоматизации: введя всего одну команду при настройке новой системы, через 15 минут вы можете получить идеально настроенные IP-стек, сеть с DNS-сервером и домен Active Directory (AD).

В предыдущих статьях я показал, как создать пакетный файл, конфигурирующий IP-стек и DNS-сервер. В этой статье речь пойдет о том, как использовать пакетный файл для создания доменов AD.

Файл ответов

Чтобы организовать домен, дерево или лес, необходимо создать первый DC в домене, дереве или лесе, а для того чтобы создать DC, все, что нужно сделать, — это запустить программу Dcpromo (известную также под названием Active Directory Installation Wizard). Как и все мастера установки, Dcpromo не требует много внимания — достаточно все время щелкать Next. Разработчики Microsoft снабдили Dcpromo полным спектром функций, относящихся к написанию сценариев. Создавать сценарии с использованием Dcpromo можно как в Windows 2000, так и в Windows 2003, хотя команды в разных операционных системах несколько отличаются. В примерах этой статьи я использую набор команд Windows 2003.

Для того чтобы выполнить Dcpromo с файлом ответов, используется параметр /answer, как показано ниже:

dcpromo /answer:<имя файла ответов>

Файл ответов — это простой текстовый файл ASCII, содержащий ответы на несколько основных вопросов. Как правило, файлы ответов нечувствительны к регистру, за исключением любых паролей, которые, возможно, требуется в него включить. Файл ответов можно создать в Notepad. Далее перечислены вопросы, ответы на которые должны быть в этом файле.

  • Будет ли данный DC первым DC в домене (т. е. будет ли создаваться домен) или он войдет в существующий домен (т. е. станет дополнительным DC)?
  • Если Dcpromo создает домен, как этот домен будет называться и как он будет включен в существующий лес? Должна ли Dcpromo создать не только новый домен, но и новый лес?
  • Если Dcpromo не создает новый домен, имеет ли пользователь необходимые права для создания нового DC в существующем домене или для создания нового домена в имеющемся лесе?
  • Где утилите Dcpromo следует разместить файл базы данных AD, ntds.dit, файлы журналов транзакций и Sysvol?
  • Как Dcpromo должна обрабатывать ошибки DNS? Если существующая инфраструктура DNS не является правильной с точки зрения AD, Dcpromo должна создать новую структуру DNS или завершить свою работу с ошибкой?

Новый домен

Для того чтобы организовать новый лес, можно использовать файл ответов из листинга 1. Этот файл ответов создает первый DC в первом домене леса. Следуя довольно распространенной практике, назовем этот первый домен bigfirm.biz.

Всего 13 строк файла ответов обеспечивают выполнение различных функций. Он начинается с параметра [DCINSTALL], который открывает все файлы ответов Dcpromo. За ним следует параметр ReplicaOrNewDomain, который определяет, создается ли новый домен или добавляется DC к существующему. Здесь может быть два варианта ответов: Domain — для создания нового домена, и Replica — для добавления DC к текущему домену. Мы создаем новый домен а не дополнительный DC, поэтому домену необходимы DNS-имя (например, bigfirm.biz), NetBIOS-имя (например, bigfirm) и пароль для режима Directory Services Restore Mode (DSRM). Эти значения указываются в параметрах NewDomainDNSName, DomainNetBIOSName и SafeModeAdminPassword.

Но в каком месте леса помещается новый домен? Параметр NewDomain может иметь три значения. Forest предписывает Dcpromo создать первый домен леса, Tree — создать первый домен в новом дереве, который является частью существующего леса, и Child предписывает Dcpromo создать новый дочерний домен в существующем дереве (это означает, что дерево является членом леса). В этом примере я создаю первый домен леса, поэтому правильное значение — Forest.

Следующие три параметра — DatabasePath, LogPath и SysvolPath — должны присутствовать в любом файле ответов Dcpromo независимо от роли DC, потому что каждому DC необходима копия базы данных AD (и, следовательно, каждый DC должен знать расположение файлов базы данных службы каталога и файлов журналов) и Sysvol. В этом простом примере я использовал %systemroot% в качестве значения для каждого из названных параметров. Почти наверняка вы не будете использовать такой путь в реальных DC: разместив файлы журналов и файлы базы данных на разных физических дисках, можно значительно увеличить производительность DC. Переменная окружения %systemroot% просто указывает на диск и каталог (например, C:winnt, D:windows), в который установлена операционная система.

Параметры DNSOnNetwork и AutoConfigDNS относятся, очевидно, к DNS. DNSOnNetwork проверяет сеть на наличие правильно сконфигурированной службы DNS. AD просто не может работать без правильно сконфигурированной инфраструктуры DNS. Поэтому, прежде чем пытаться создать DC, Dcpromo выполняет несколько тестов, чтобы убедиться, что служба DNS развернута правильно. Установив параметр в значение No и отключив тем самым эти тесты, можно сэкономить несколько секунд, но я устанавливаю в данном примере значение Yes, поскольку двойная проверка статуса DNS не повредит.

Если же Dcpromo обнаружит, что DNS развернута неправильно? В таком случае AutoConfigDNS позволяет Dcpromo автоматически настроить DC в качестве сервера DNS, давая DC минимально необходимые полномочия для выполнения этой роли. Данный параметр всегда следует устанавливать в значение No. AD не будет работать без правильно настроенной инфраструктуры DNS, а Dcpromo не станет выполнять настройку DNS. Поэтому при нарушениях в работе DNS должно происходить неуспешное завершение работы Dcpromo.

Завершается файл ответов параметрами AllowAnonymousAccess и RebootOnSuccess. Параметр AllowAnonymousAccess отвечает на вопрос Dcpromo о том, есть ли в сети серверы RAS, работающие на Windows NT 4.0. Когда Dcpromo приспосабливается к серверам RAS на Windows NT 4.0, настраивая новый DC, она делает это за счет ослабления безопасности. По сути, данный параметр определяет, разрешает ли администратор группе Everyone анонимный доступ к этому DC. Я мог бы привести массу аргументов, объясняя, почему предоставление такого доступа крайне нежелательно, но, чтобы сэкономить место, просто скажу, что этот параметр всегда следует устанавливать в No или у администратора должны быть очень веские причины для установки его в значение Yes. Параметр RebootOnSuccess дает команду перезагрузить систему после завершения работы Dcpromo.

Существующий домен

Рассмотрим файл ответов, который создает дополнительный DC для bigfirm.biz. Я упорядочил строки сценария в листинге 2 так, чтобы можно было узнать первые девять параметров из листинга 1. Параметр ReplicaOrNewDomain имеет другое значение (Replica, а не Domain), по этой инструкции Dcpromo создает новый DC в существующем домене. ReplicaDomainDNSName предоставляет утилите Dcpromo имя домена, в который следует добавить новый DC. Но создать новый DC в существующем домене может только администратор домена, поэтому Dcpromo требует предоставления учетных данных. Параметры UserName, UserDomain и Password содержат имя, домен и пароль учетной записи пользователя, имеющего полномочия для создания нового DC в существующем домене.

Для тех, кто интересуется, почему значения параметров SafeModeAdminPassword (swordfish) в листинге 1 и Password (onceuponatimeinalandfaraway) в листинге 2 не совпадают, напоминаю, что пароль, используемый для работы DSRM, не обязательно совпадает с паролем доменной учетной записи администратора по умолчанию. Пароль DSRM хранится в локальной системе SAM контроллера домена, а учетная запись Administrator хранится в AD. Нужно отметить, что в Dcpromo предусмотрена интересная функция безопасности: если вы запускаете Dcpromo, используя файл ответов, который содержит пароль, Dcpromo модифицирует файл, удаляя пароль.

Последний параметр, CriticalReplicationOnly, позволяет выбрать вариант репликации, при котором реплицируется минимальная часть базы данных AD перед перезагрузкой. Если использовать в этом параметре значение Yes, новый DC отложит большую часть копирования базы данных AD на первую загрузку. Несмотря на то что этот параметр является необходимым для файла ответов, я не считаю его таким уж полезным. Видимо, разработчики Microsoft включили эту функцию в Windows 2000 для того, чтобы очень крупные предприятия (например, HP, Intel, Microsoft) имели возможность выполнять первоначальную настройку DC, не запуская длительной репликации потенциально огромной базы данных AD. Но теперь, когда Windows 2003 позволяет запускать Dcpromo из резервной копии полной базы данных AD, данная функция утратила свое значение.

Бесплатные инструменты

Могу с уверенностью сказать, что применение пакетных файлов с утилитой Netsh для контроля IP, с утилитой Dnscmd — для настройки сервера DNS, а также использование файла ответов Dcpromo для настройки AD заметно облегчает работу. Используя их все вместе, мы получаем очень удобный набор инструментов для настройки и восстановления после сбоев, который не требует ни малейших затрат. Более подробную информацию о написании сценариев с утилитой Dcpromo можно найти в файле ref.chm папки SupportTools на компакт-диске Windows 2003.

Марк Минаси — редактоp Windows NT Magazine MCSE и автор книги «Mastering Windows NT Server 4.0» (издательство Sybex). С ним можно связаться по адресу: mark@minasi.com