Введение
Думаю, каждый системный администратор знает, насколько полезные и богатые функциональные возможности можно найти в такой технологии как групповая политика. Применяя эту технологию, администраторы могут эффективно настраивать клиентские компьютеры, изменять существующие или добавлять новые административные шаблоны, управлять предпочтениями групповой политики, устанавливать программное обеспечение, настраивать параметры безопасности, а также выполнять еще много различных задач. Другими словами, эта технология включает в себя настройки для большинства ролей и компонентов операционных систем и избавляет администраторов от выполнения ежедневных рутинных задач.
Но на днях мне задали следующий вопрос: каким образом, при помощи GPO, можно централизовано управлять включением/отключением компонентов Windows 7? Действительно, если вы внимательно пробежитесь по всем узлам оснастки «Редактор управления групповой политикой» и пересмотрите каждый параметр политики, то вы не найдете такой возможности как, скажем, включение клиента Telnet или других отключенных по умолчанию системных компонентов.
На первый взгляд, задачу можно отнести к разряду невыполнимых, так как в списке параметров политики отсутствует такая возможность и, значит, реализовать централизованное включение системных компонентов невозможно. Но на самом деле это не совсем так. Для решения такой задачи у вас есть два выхода. Прежде всего, вы можете создать образ системы для ваших пользователей и устанавливать операционную систему с уже включенными компонентами при помощи роли Windows Deployment Services, устанавливаемой в Windows Server 2008/2008 R2. Но этот вариант не всегда может быть приемлемым, так как у некоторых пользователей, которым нужно, чтобы был установлен тот или иной компонент, возможно, уже установлена операционная система и в ее переустановке нет никакой необходимости. И второй способ – это создание сценария автозагрузки, устанавливающего компоненты операционной системы средствами определенной утилиты командной строки, который также должен отрабатывать при загрузке операционной системы. В этой статье будет рассмотрен второй способ.
Установка компонентов операционной системы средствами командной строки
Ни для кого не секрет, что управление практически каждой задачей, выполняемой средствами пользовательского интерфейса, имеет свой аналог в среде командной строки. Установка системных компонентов не является исключением. Для установки, настройки, обновления и удаления системных компонентов в образах Windows или уже установленной операционной системе вы можете воспользоваться утилитой командной строки dism. Система обслуживания образов развертывания и управления (DISM) в основном предназначается для подготовки образа среды предустановки операционной системы Windows. Эту утилиту командной строки можно применять для операционных систем, начиная с Windows Vista SP1 и Windows Server 2008. Так как основной задачей, описанной в этой статье, является установка системных компонентов, думаю, нет смысла приводить подробное описание текущей утилиты командной строки и рассказывать о ее функциональных возможностях. В данном случае нас интересуют только несколько команд, а именно:
- /Online. Благодаря этой команде вы можете указать, что при работе с этой командой будет использоваться работающая на данный момент операционная система, а не образ;
- /Get-Features. Несмотря на то, что непосредственно для процесса установки компонентов операционной системы эта команда считается бесполезной, ее вывод вам может понадобиться перед установкой компонентов операционной системы. Текущая команда отображает сведения обо всех системных компонентах, причем, как установленных, так и не установленных на целевом компьютере;
- /Enable-Feature. Эта команда позволяет установить на компьютер указанный вами компонент операционной системы.
Теперь можно попробовать установить на компьютере с клиентской операционной системой такой компонент как клиент Telnet при помощи командной строки. А сделать это можно следующим образом:
- Нужно открыть командную строку от имени администратора. Стоит на это обязательно обратить внимание. Если командная строка будет запущена под пользовательским маркером доступа, утилита Dism не будет работать;
- Чтобы просмотреть, как называется в операционной системе данный компонент, выполните команду Dism /Online /Get-Features, как показано на следующей иллюстрации:
Увеличить рисунок
Рис. 1. Вывод команды /Get-Features
Стоит обратить внимание на то, что данная команда выводит очень много информации, и весь вывод команд вы не увидите, поэтому лучше всего сохранять вывод команды в текстовый файл, а уже в текстовом файле искать компонент, который следует устанавливать.
- После того как станет известно название необходимого вам компонента операционной системы (например, такой компонент как «Клиент Telnet» называется TelnetClient) останется только лишь установить его при помощи утилиты dism с командой /Enable-Feature. В случае с клиентом Telnet команда должна выглядеть следующим образом: Dism /Online /Enable-Feature /FeatureName:TelnetClient. Установка системного компонента средствами командной строки изображена на следующей иллюстрации:
Увеличить рисунок
Рис. 2. Установка компонента операционной системы средствами командной строки
Установка компонентов операционной системы, используя групповую политику
Теперь, после того как вы узнали метод установки компонентов операционной системы средствами командной строки, можно попробовать установить эти компоненты при помощи функциональных возможностей групповой политики. Для этого создайте bat-файл со следующим содержимым:
Dism /Online /Enable-Feature /FeatureName:TelnetClient
На следующем этапе все зависит от окружения, в котором будет устанавливаться новый системный компонент. Если компьютер вашего пользователя входит в домен, вам нужно будет в оснастке «Управление групповой политикой» создать новый объект групповой политики и вызвать для этого объекта GPO оснастку «Редактор управления групповыми политиками». Если же компьютер, на котором будет устанавливаться новый компонент операционной системы, входит в рабочую группу, то вам нужно будет на этом компьютере открыть оснастку «Редактор локальной групповой политики».
Так как утилита Dism будет работать только под административным маркером безопасности, после того как откроется необходимая оснастка, в дереве оснастки разверните узел Конфигурация компьютера\Конфигурация Windows и выберите узел «Сценарии (запуск/завершение)». Если вы выберите узел сценариев из родительского узла Конфигурация пользователя, то командная строка будет запущена от имени выполнившего вход в систему пользователя и, соответственно, команда не будет выполнена. Откройте диалоговое окно свойств параметра политики «Автозагрузка» и на вкладке «Сценарии» укажите путь к созданному заранее сценарию. Учтите, что если вы будете использовать написанный вами сценарий для компьютеров, которые являются членами домена, вам нужно будет его поместить в общедоступную папку. Вкладка «Сценарии» диалогового окна свойств политики автозагрузки изображена ниже:
Рис. 3. Вкладка «Сценарии» диалогового окна настраиваемого параметра политики
После того как в текущий параметр политики будут внесены требуемые изменения, закройте оснастку и, в том случае, если вы создавали объект групповой политики для компьютеров, расположенных в домене Active Directory, привяжите объект групповой политики к нужному подразделению.
Последнее что осталось сделать для установки компонентов операционной системы – перезагрузить пользовательский компьютер или выполнить на нем команду gpupdate. На следующей иллюстрации вы можете увидеть диалоговое окно «Компоненты Windows» после выполнения данной команды:
Рис. 4. Диалоговое окно «Компоненты Windows»
Заключение
В этой статье было рассказано о нетривиальном методе установки компонентов операционной системы Windows средствами групповой политики. Была описана работа команды, предназначенной для подготовки образа среды предустановки операционной системы Windows, при помощи которой можно решить данную задачу. Как видите, решение оказалось очень простым. А как вы устанавливаете компоненты операционной системы на компьютеры своих пользователей?