Командная строка Windows 2003
Базовые утилиты операционной системы
Утилиты, установленные вместе с операционной системой, важнее всех прочих инструментов, описанных в данной статье. Тем не менее возможности некоторых из них малоизвестны.
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. Если вам знакома такая ситуация, то в командной строке нужно запустить команду:
где name.extension — имя файла утилиты. Эта команда укажет каталог, в котором размещается нужный инструмент. Еще интереснее выполнить найденную команду на удаленной системе, не покидая рабочего места. Для этого следует запустить команду совместно с утилитой PsExec от Sysinternals, которая описана ниже:
psexec \\
%windir%\system32where.exe
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 или его аналоги. Можно применить команду
для создания отчета о записях управления доступом (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 +is_gc
Можно изменить направление действия команды, заменив плюс (+) на минус (-). Можно быстро отключить репликацию на контроллер домена с помощью команды
repadmin /options
+disable_inbound_replication
и с контроллера домена командой
repadmin /options
+disable_outbound_replication
Можно использовать ключ /options для проверки результатов любого из таких действий следующей командой:
Одним из важных новых ключей команды Repadmin, появившихся в Windows 2003, является /replsummary. Эта команда обеспечивает быстрое получение суммарной информации о работоспособности на данный момент репликации на всех контроллерах домена леса. Информация отображается в формате, похожем на таблицу. Команда выполняется достаточно быстро даже в больших лесах. Можно добавить ключ /errorsonly, тем самым ограничив выводимую информацию только неисправными DC. Ключ /bridgeheads показывает подробную информацию о серверах-мостах. Команда /replsummary без дополнительных параметров выводит информацию обо всех серверах-мостах леса. Ключ /querysites позволяет задать стоимость соединения между двумя или более сайтами в лесу. Данный параметр полезен для определения оптимального маршрута с наименьшей стоимостью в лесах со сложной топологией сайтов. Многие другие параметры команды Repadmin ожидают внимания администратора. Время, потраченное на их изучение, не пропадет даром.
Windows commands
All supported versions of Windows (server and client) have a set of Win32 console commands built in.
This set of documentation describes the Windows Commands you can use to automate tasks by using scripts or scripting tools.
Prerequisites
The information that is contained in this topic applies to:
- Windows Server 2019
- Windows Server (Semi-Annual Channel)
- Windows Server 2016
- Windows Server 2012 R2
- Windows Server 2012
- Windows Server 2008 R2
- Windows Server 2008
- Windows 10
- Windows 8.1
Command shell overview
The Command shell was the first shell built into Windows to automate routine tasks, like user account management or nightly backups, with batch (.bat) files. With Windows Script Host you could run more sophisticated scripts in the Command shell. For more information, see cscript or wscript. You can perform operations more efficiently by using scripts than you can by using the user interface. Scripts accept all Commands that are available at the command line.
Windows has two command shells: The Command shell and PowerShell. Each shell is a software program that provides direct communication between you and the operating system or application, providing an environment to automate IT operations.
PowerShell was designed to extend the capabilities of the Command shell to run PowerShell commands called cmdlets. Cmdlets are similar to Windows Commands but provide a more extensible scripting language. You can run Windows Commands and PowerShell cmdlets in Powershell, but the Command shell can only run Windows Commands and not PowerShell cmdlets.
For the most robust, up-to-date Windows automation, we recommend using PowerShell instead of Windows Commands or Windows Script Host for Windows automation.
You can also download and install PowerShell Core, the open source version of PowerShell.
Incorrectly editing the registry may severely damage your system. Before making the following changes to the registry, you should back up any valued data on the computer.
To enable or disable file and directory name completion in the Command shell on a computer or user logon session, run regedit.exe and set the following reg_DWOrd value:
To set the reg_DWOrd value, use the hexadecimal value of a control character for a particular function (for example, 0 9 is Tab and 0 08 is Backspace). User-specified settings take precedence over computer settings, and command-line options take precedence over registry settings.
Command-line reference A-Z
To find information about a specific command, in the following A-Z menu, click the letter that the command starts with, and then click the command name.