Командная строка Windows 2003


В среде Windows утилиты командной строки никогда не привлекают особенного внимания, в отличие от графических утилит. Хотя утилиты командной строки и обогащаются каждый год многочисленными дополнениями и улучшениями, надо хорошенько покопаться, чтобы отыскать их. Новые утилиты командной строки разрабатываются не только для Windows Server 2003, специалисты Microsoft внесли улучшения и в утилиты из состава Windows 2000 (и даже для Windows NT 4.0). Кроме того, внесены изменения и дополнения во многие утилиты, доступные с Download Center. Заметим, что набор утилит, описанный в данной статье, далеко не полон. На сегодня утилиты нередко имеют урезанную функциональность и плохо документированы. Врезка «Утилиты командной строки — здесь!» содержит указатель на пять наиболее известных источников, в которых можно найти эти инструменты для обслуживания Windows. Далее я расскажу как об утилитах общего назначения, так и о более специализированных программах, которые помогают решать проблемы, возникающие на серверах и в Active Directory (AD). Я буду отталкиваться от происхождения и специализации инструмента. Начнем с базовых утилит, входящих в состав операционных систем, затем речь пойдет об инструментах из набора Support Tools, поставляемого на компакт-диске с операционной системой, далее рассмотрим утилиты, которые можно загрузить из Microsoft Download Center, познакомимся с инструментами Microsoft Windows Server 2003 Resource Kit и закончим некоторыми программами производства независимых компаний.

Базовые утилиты операционной системы

Утилиты, установленные вместе с операционной системой, важнее всех прочих инструментов, описанных в данной статье. Тем не менее возможности некоторых из них малоизвестны.

Ds-утилиты. Ни одна дискуссия об утилитах командной строки Windows 2003 не обходится без упоминания DS-инструментов (утилит, обеспечивающих работу службы каталога, таких как Dsquery, Dsget, Dsadd, Dsmod, Dsmove и Dsrm), которые поставляются вместе с операционной системой. Dsquery и Dsget появились вместе с Windows 2003. Их функции отчасти дублируются. Эти инструменты хорошо дополняют друг друга при использовании в определенной комбинации. Dsquery возвращает список объектов Active Directory в виде составного имени DN по заданным параметрам поиска и комбинации ключевых слов и фильтров поиска.

Dsget использует похожий метод и возвращает атрибуты заданного объекта Аctive Directory. Dsget также принимает на вход вывод команды Dsquery через команду конвейера (|), позволяя Dsget возвращать только необходимые атрибуты заданных объектов в определенном формате. На экране 1 показан вывод на экран команды Dsget, возвращающей все контроллеры домена (DC) для домена DEUBYNET. Там же показан вывод после того, как результаты работы Dsquery переданы на вход команды Dsget, возвращающей только DNS-имя и информацию о сайте для каждого из объектов.

Команды Dsadd (добавить объекты), Dsmod (модифицировать атрибуты существующего объекта), Dsmove (переместить объект из домена) и Dsrm *(удалить объекты) имеют синтаксис, сходный с Dsquery и Dsget.

В зависимости от сложности иерархии Active Directory, первым параметром команд Dsquery, Dsget, Dsadd и Dsmod является ключевое слово, задающее тип объекта, с которым пользователь будет взаимодействовать. Этот параметр избавляет от необходимости знать точное местоположение объекта в AD. Например, утилита AdFind (независимого производителя) для эффективного поиска сайтов требует ввести полное составное имя DN в структуре Active Directory, с которого будет начинаться поиск (cn=sites,cn=configuration,cn=yourdomain,cn=com.). Для утилиты Dsquery достаточно просто задать в командной строке: Dsquery sites для поиска сайтов. Тем не менее я убежден, что для правильного понимания структуры и, соответственно, грамотного управления Active Directory необходимо знать точное расположение этих объектов. Кроме того, базовый набор Ds-утилит не предоставляет в полном объеме тех возможностей по работе с Active Directory, которые могут потребоваться. Например, нельзя будет из командной строки изменять конфигурацию сайтов. Освоившись с DS-утилитами, переходите к AdFind и AdMod, упомянутым выше.

Where. Случалось ли вам при запуске какой-либо утилиты видеть сообщение о невозможности отыскать ее в системе и вы не могли вспомнить, где находится эта утилита? Либо это утилита из состава Support Tools, либо специфическая команда операционной системы сервера, либо данная программа загружена из Internet. Если вам знакома такая ситуация, то в командной строке нужно запустить команду:

where <name.extension>

где name.extension — имя файла утилиты. Эта команда укажет каталог, в котором размещается нужный инструмент. Еще интереснее выполнить найденную команду на удаленной системе, не покидая рабочего места. Для этого следует запустить команду совместно с утилитой PsExec от Sysinternals, которая описана ниже:

psexec \\<systemname>
%windir%\system32where.exe <name.extension>
Support Tools

Если базовые утилиты из состава операционной системы являются фундаментом и имеют первостепенное значение, то утилиты поддержки, относящиеся к Support Tools, занимают по важности второе место. Изначально они предназначались для специалистов по поддержке продуктов Microsoft для помощи в диагностике проблем. Утилиты категории Support Tools стали базовой частью инструментария администраторов и могут быть установлены на все системы.

DcDiag. Утилиту DcDiag из комплекта Support Tools при обнаружении проблем с DС необходимо запустить в первую очередь. При запуске утилиты без указания параметров запускается 27 тестов указанного DC (на пять больше, чем в Windows 2000). Если выбрать ключ /s для задания целевого контроллера домена, можно применить ключ /a для тестирования всех контроллеров домена сайта. Если при работе не задавать границу исследуемой области, используйте ключ /e. С его помощью можно протестировать все DС в лесу. Замечу, что в большом лесу необходимо запускать утилиту с ключом /e в период наименьшей загрузки сети и контроллеров домена. Ключ /dcpromo — новая полезная возможность, позволяющая протестировать настройки серверов домена на предмет готовности стать контроллером домена. Ключ dcpromo единственный, который не работает на контроллерах домена.

DNSLint. Утилита DNSLint из набора утилит Support Tools — малоизвестный инструмент, позволяющий диагностировать наиболее общие DNS-проблемы, связанные с некорректным делегированием или некорректными или отсутствующими записями DNS для домена. Если запустить ее надлежащим образом, она проанализирует весь домен и все серверы DNS внутри него на предмет ошибок в структуре DNS. Как большинство утилит, описываемых в данной статье, DNSLint имеет собственные уникальные параметры и ключи. Во многих ситуациях нам требуется провести проверку (чаще внутреннего) домена с использованием указания ключа /s DNS server IP address, поскольку он исключает просмотр Internet-части домена. DSLint создает отчет в формате HTML в файле с именем dnslint.htm. Чтобы получить отчет в текстовом формате вместо HTML — формата по умолчанию (возможно, для того чтобы использовать сценарий для процесса вывода), можно задать параметры /t и /no_open.

DNSLint покажет всю свою мощь при использовании ключа /ad для запуска тестов AD DNS. Ключ /ad запускает серию опрашивающих Active Directory запросов о правильной регистрации GUID на контроллерах домена леса, регистрации записей типа Start of Authority (SOA), Name Server (NS) и о зарегистрированных SRV-записях. Во время использования этого параметра необходимо задать IP-адрес контроллера домена, который отвечает за корневой домен леса. Также можно задействовать ключ /s для исключения просмотра зоны InterNIC. Обычно применяется тот же IP-адрес сервера, который использовался для параметра /ad. Поэтому команда будет выглядеть так:

dnslint /ad 192.168.1.51 /s 192.168.1.51

Этот ключ проверяет записи DNS, которые представляют собой записи типа А в корневом домене. Эти записи содержат информацию о серверах DNS, ответственных за дочерние домены. Чтобы настроить DNSLint для выполнения конкретной задачи, указать DNS-серверы и запустить соответствующие тесты, можно использовать ключ /ql. Если добавить параметр autocreate после ключа /ql, то DNSLint создаст пример файла конфигурации с именем in-dnslint.txt. После этого можно будет задействовать этот файл для дальнейшей настройки.

Для тех, кто предпочитает пользоваться утилитами, загружаемыми с сайта Microsoft, был создан центр загрузки Download Center, обеспечивающий удобный единый источник централизованной загрузки приложений. На этом сайте можно найти практически все самостоятельные утилиты и инструменты, а также наборы специализированных утилит, взятые с других Web-сайтов.

Command Prompt Here. Эту утилиту я обычно ставлю на все административные консоли. Command Prompt Here — простой инструмент из пакета Microsoft PowerToys for Windows XP. Утилита добавляет в меню пункт, который позволяет запустить командную строку с любой папкой в качестве текущей.

Dsrevoke. Нередко администратор предоставляет те или иные права пользователю или группе где-нибудь в домене (при помощи Active Directory Delegation of Control), а затем ему требуется удалить эти разрешения. Поиск по всему домену и удаление разрешений может оказаться труднейшим процессом. Команда Dsrevoke в основном используется для отмены действий, выполненных через мастер делегирования управления Delegation of Control wizard или его аналоги. Можно применить команду

dsrevoke /report <security principal>

для создания отчета о записях управления доступом (access control entries (ACE)), которые были установлены на весь домен и OU-объекты в корневом домене. Допустим, пользователю по имени Barbara Seville было дано право создавать, удалять пользовательские учетные записи в OU Staff и управлять ими. На экране 2 показаны результаты работы команды Dsrevoke /report для пользователя Barbara Seville. Для удаления ее прав нужно просто заменить ключ /report на /remove. Dsrevoke сначала показывает права пользователя, так же как и в случае ключа /report. После этого необходимо подтвердить удаление, нажав Y (Yes) для удаления всех АСЕ.

Нужно иметь в виду, что эта утилита, подобно Delegation of Control Wizard, работает только с разрешениями, предоставленными для OU. Если администратор явно предоставил права на объекты или контейнеры (такие, как Computers), а не разрешил наследование прав на объекты от родительской OU, ему придется удалить эти права.

DCGPOFix и Recreatedefpol. Если возникают проблемы с объектами групповой политики Group Policy Objects (GPO), используемыми в домене по умолчанию, — политиками по умолчанию для домена контроллеров домена, то можно задействовать утилиту DCGPOFix в Windows 2003 или утилиту Recreatedefpol в Windows 2000 для восстановления их состояния по умолчанию. DCGPOFix может восстановить используемую политику домена по умолчанию (/target: <имя домена>) и исходную политику контроллера домена (/target:DC) или обе одновременно (/target:both).

Чтобы использовать ключ /target:both, возможно, понадобятся и другие утилиты, которые помогают разобраться в текущем состоянии и навести порядок. При потере одной или нескольких групповых политик может возникнуть неприятная ситуация. Следует рассмотреть возможности Group Policy Management Console (GPMC) (обсуждение которых выходит за рамки статьи), поставляемой с большим набором сценариев командной строки, и возможность написания собственных сценариев. Без лишних усилий можно создать резервную копию и восстановить из нее как индивидуальный объект GPO, так и все GPO в домене. Можно копировать индивидуальные GPO и создавать отчеты по одному или по всем GPO домена в формате, понятном для GPMC. Можно даже сохранить все окружения групповых политик (GPO, настройки, ссылки, разрешения) в XML-файле при помощи сценария и восстановить их через другой сценарий.

Repadmin. Опора Microsoft Product Support Services (PSS) — Repadmin — является базой для решения проблем с репликацией. Этот инструмент имеет так много команд (59), параметров и переключателей, что ему понадобилась трехуровневая система подсказки. Ключ /oldhelp отображает синтаксис и параметры, которые были в оригинальной версии. Некоторые из них были впоследствии удалены или заменены новыми командами. Описание текущего набора команд выводится при запуске утилиты с ключом /help. При этом ключи оригинальной версии продолжают работать. Если не углубляться в изучение синтаксиса, может оказаться, что вы запустите у себя не самую полную версию и никогда не узнаете об этом. Например, многие пользователи Repadmin и не слышали об одном из основных ключей /showreps. Он все еще присутствует в Windows 2003, однако новая версия /showrepl имеет полезный ключ /errorsonly, избавляющий нас от необходимости пробираться через страницы информации «соединение-объект» для поиска ошибок.

Ключ /experthelp предоставляет возможность доступа к недокументированным параметрам Repadmin, которые из-за своих расширенных возможностей становятся потенциально опасными. Фактически ключ /experthelp сам является недокументированным. Предупреждения об осторожности при работе с этими ключами отсутствуют, поэтому запускать их рекомендуется в тестовом лесу, до тех пор пока администратор полностью не разберется с ними. На экран не будут выводиться диалоги о подтверждении действий вроде: «Вы действительно хотите удалить этот контекст именования?»

Одной из полезных возможностей команды из раздела /experthelp является команда /options. Эта команда позволяет создавать серверы глобального каталога GC. Пример такой команды приведен ниже.

repadmin /options <dcname> +is_gc

Можно изменить направление действия команды, заменив плюс (+) на минус (-). Можно быстро отключить репликацию на контроллер домена с помощью команды

repadmin /options <dcname>
+disable_inbound_replication

и с контроллера домена командой

repadmin /options <dcname>
+disable_outbound_replication

Можно использовать ключ /options для проверки результатов любого из таких действий следующей командой:

repadmin /options <dcname>

Одним из важных новых ключей команды Repadmin, появившихся в Windows 2003, является /replsummary. Эта команда обеспечивает быстрое получение суммарной информации о работоспособности на данный момент репликации на всех контроллерах домена леса. Информация отображается в формате, похожем на таблицу. Команда выполняется достаточно быстро даже в больших лесах. Можно добавить ключ /errorsonly, тем самым ограничив выводимую информацию только неисправными DC. Ключ /bridgeheads показывает подробную информацию о серверах-мостах. Команда /replsummary без дополнительных параметров выводит информацию обо всех серверах-мостах леса. Ключ /querysites позволяет задать стоимость соединения между двумя или более сайтами в лесу. Данный параметр полезен для определения оптимального маршрута с наименьшей стоимостью в лесах со сложной топологией сайтов. Многие другие параметры команды Repadmin ожидают внимания администратора. Время, потраченное на их изучение, не пропадет даром.

 
« Предыдущая статья   Следующая статья »