Windows Server 2008 R2 поставляется с PowerShell 2.0‑­совместимым модулем Server Manager. Импортировав этот модуль, вы добавите к своему арсеналу три команды PowerShell: add-windowsfeature, get-windowsfeature и remove-windowsfeature. По своим функциям они весьма близки командам dism/online/enable-feature, dism/online/get-features и dism/online/disable-feature, но команды первой из названных групп обладают характерными дополнительными возможностями, которые мы привыкли видеть в командах PowerShell.

Перед запуском этих команд вам нужно будет открыть окно командной строки с повышенными привилегиями (щелкните правой кнопкой мыши на синем значке PowerShell, выберите Run as Administrator, примите запрос User Account Control — UAC) и ввести с клавиатуры 

import-module servermanager

Затем вы сможете приступить к работе с командами Server Manager. Для этого требуется ввести

get-windowsfeature

В результате на экране появится список ролей, служб ролей и функций (к счастью, в PowerShell, как и в DISM, не сохранено неразумное разделение «того, что может делать сервер» на роли и функции). Каждый пункт списка содержит особое имя, которое необходимо использовать при активации или деактивации соответствующей функции. Для примера привожу несколько строк, появляющихся на экране:

[ ] DHCP Server DHCP

[X] DNS Server DNS

[ ] Fax Server Fax

[ ] File Services File-Services

[ ] File Server FS-FileServer

Простой символ X рядом с надписью DNS Server указывает на то, что в системе установлена роль DNS Server, а службы ролей DHCP Server, Fax Server, File Services и File Server не установлены. Служебные роли, согласно терминологии разработчиков Server 2008 R2, — это «просто часть роли». Имена справа — DHCP, DNS, Fax, File-Services и FS-FileServer — это именно те имена, которые необходимо вводить в команду add-windowsfeature, следующую команду Server Manager.

Чтобы добавить к этому серверу службу роли File Server, я бы ввел строку

add-windowsfeature fs-fileserver

Надеюсь, эта синтаксическая конструкция не вызывает у вас недоумения — пока что она напоминает рассмотренную ранее конструкцию DISM и вполне доступна для понимания.

Но вы будете приятно удивлены, познакомившись с некоторыми другими аспектами этой команды. Прежде всего, отметим следующее обстоятельство: команда get-windowsfeature сообщает, что служба роли имеет имя FS-FileServer (а не имя fs-fileserver, указанное с клавиатуры). Помните досаждавшее пользователям требование о применении символов верхнего и нижнего регистров в «волшебных именах» ролей и функций? Так вот, PowerShell не накладывает это ограничение.

Второй момент. Вы можете установить не одну функцию, а несколько; следует только разделить их имена запятыми, как показано ниже

add-windowsfeature dhcp, fax, file-services

Сравните эту простую синтаксическую конструкцию в формате списка с принятым в DISM раздражающим правилом предварять каждую функцию символами/featurename, и вы почувствуете симпатию к командам Server Manager. Отметьте также, что элементы списка add-windowsfeature можно отделять друг от друга как запятыми, так и сочетаниями «запятая-пробел», как это сделал я. По моему мнению, разделитель «запятая-пробел» позволяет составлять более легко читаемые команды. Жаль, что пользователь не получает доступа к составным командам Server Manager после установки комплекта Remote Server Administration Tools (RSAT). К тому же это обстоятельство вызывает и некоторое удивление, поскольку RSAT предоставляет в распоряжение пользователей Windows 7 порядка 70 команд, имеющих отношение к Active Directory (AD). Ну что стоило добавить всего лишь три команды из группы Server Manager?

Для удаления функции с сервера нужно воспользоваться командой remove-windowsfeature. Она принимает те же параметры, что и команда add-windowsfeature. Например,

remove-windowsfeature dhcp, fax

С командами remove-windowsfeature и add-windowsfeature применяются еще два полезных параметра: -restart и -whatif. Постоянным пользователям PowerShell наверняка известно, что параметр -whatif применяется практически со всеми командами PowerShell, которые могут вносить нежелательные изменения в систему. Данный параметр предписывает команде PowerShell не вносить реальных изменений и вместо этого сообщать, какие действия были бы предприняты, если бы параметр -whatif не был использован. Эта одна из самых моих любимых функций PowerShell, настоящее защитное средство для администраторов!

Наконец, параметр -restart, будучи использован вместе с командой add-windowsfeature или remove-windowsfeature, предписывает среде PowerShell выполнить перезагрузку для завершения операции добавления/удаления.

Если вы еще не применяли на практике оболочку PowerShell, составные команды Server Manager перекинут мостик к освоению полезного набора инструментов средств командной строки. В следующем номере я продолжу разговор об этих командах и их замечательных возможностях.

Марк Минаси (mark@minasi.com) — редактор Windows IT Pro, MCSE и автор книги Mastering Windows Server 2003 (издательство Sybex)