Windows server установка ролей powershell

Управление ролями и компонентами Windows Server из PowerShell

В Windows Server 2012R2/2016/2019 вы можете устанавливать и удалять различные роли и компоненты сервера через графический Server Manager. Однако в большинстве случаев эти же самые операции можно выполнить гораздо быстрее из консоли PowerShell. В этой статье мы рассмотрим особенности управления ролями и компонентами в актуальных версиях Windows Server.

Как вывести все установленные роли и компоненты Windows Server?

Чтобы вывести список всех доступных ролей и компонентов Windows Server используется командлет Get-WindowsFeature . Если выполнить его без параметров, появится информация обо всех компонентах.

Как вы видите, отображается название компонента (Display Name), его системное имя (Name) и состояние (Install State: Installed, Available или Removed). Список ролей и компонентов представляет собой дерево со вложенными ролями, которое напоминает то, которые вы видите при установке ролей через графический Server Manager. Для установки и удаления ролей и компонентов через PowerShell, вам нужно знать их системное имя, которое содержится в столбце Name.

Роли и компоненты удаляются из образа так:

Uninstall-WindowsFeature –Name DHCP –Remove

Чтобы установить удаленную роль, воспользуйтесь командлетом:

Install-WindowsFeature DHCP (понадобится доступ в Интернет)

Либо вы можете восстановить компоненты их дистрибутива с вашей версией Windows Server:

Install-WindowsFeature DHCP -Source E:\sources\sxs

Вы можете вывести список установленных компонентов сервера:

Get-WindowsFeature | Where-Object <$_. installstate -eq "installed">| ft Name,Installstate

Судя по скриншоту, данный сервер используется как файловый сервер (роли FileAndStorage-Services, Storage-Services). Большинство оставшихся компонентов используются для управления и мониторинга сервера.

Если вы не знаете точно имя роли, можно использовать знаки подстановки. Например, чтобы проверить какие из web компонентов роли IIS установлены, выполните (немного сократим синтаксис):

Get-WindowsFeature -Name web-* | Where installed

Вы можете получить список установленных компонентов на удаленном Windows Server:

Get-WindowsFeature -ComputerName msk-prnt1 | Where installed | ft Name,Installstate

Судя по установленным ролям Print-Services и Print-Server, этот сервер используется в качестве сервера печати.

Вы можете использовать командлет Get-WindowsFeature для поиска серверов в домене, на которых установлена определенная роль. Вы можете искать на серверах в определенном OU Active Directory с помощью командлета Get-ADComputer из модуля ActiveDirectory for PowerShell, или по указанному списку серверов ( $servers = (‘server1’, ‘server2’) ). Например, нам нужно найти все файловые сервера c ролью FileAndStorage-Services в указанном контейнере AD (я использую редактор PS — Visual Studio Code)

import-module activedirectory
$Servers=get-adcomputer -properties * -Filter -SearchBase ‘OU=Servers,OU=MSK,DC=winitpro.ru,DC=ru’ |select name
Foreach ($server in $Servers)
<
Get-WindowsFeature -name FileAndStorage-Services -ComputerName $server.Name | Where installed | ft $server.name, Name, Installstate
>

В результате у нас появился список серверов, на которых установлена данная роль.

Читайте также:  Не вводится пароль для терминала mac os

Установка ролей и компонентов Windows Server из PowerShell

Для установки ролей и компонентов в Windows Server используется командлет Install-WindowsFeature.

Чтобы установить роль DNS на текущем сервере и инструменты управления (в том числе модуль Powershell – DNSServer), выполните:

Install-WindowsFeature DNS -IncludeManagementTools

По-умолчанию командлет устаналивает все необходимые зависимые роли и компоненты при установке роли. Чтобы вывести список зависимостей до установки воспользуйтесь параметров.
Install-WindowsFeature -name UpdateServices -whatif

Например, для установки роли сервера обновлений WSUS, необходимо установить некоторые компоненты IIS.

What if: Continue with installation?
What if: Performing installation for «[Windows Server Update Services] Windows Server Update
What if: Performing installation for «[Windows Server Update Services] WID Database».
What if: Performing installation for «[Windows Server Update Services] WSUS Services».
What if: Performing installation for «[Web Server (IIS)] Windows Authentication».
What if: Performing installation for «[Web Server (IIS)] Dynamic Content Compression».
What if: Performing installation for «[Web Server (IIS)] Performance».
What if: Performing installation for «[Web Server (IIS)] Static Content».
What if: Performing installation for «[Windows Internal Database] Windows Internal Database».
What if: The target server may need to be restarted after the installation completes.

Чтобы установить роль Remote Desktop Session Host, службу лицензирования RDS и утилиты управления RDS на удаленном сервере, воспользуйтесь командой:

Install-WindowsFeature -ComputerName msk-rds21 RDS-RD-Server, RDS-Licensing –IncludeAllSubFeature –IncludeManagementTools –Restart

C параметром –Restart сервер будет автоматически перезагружен, если установленный компонент это потребует.

Также можно установить компонент такой командой (например роль SMTP сервера):

Get-WindowsFeature -Name SMTP-Server | Install-WindowsFeature

Деплой ролей на множество серверов Windows Server

Еще одна интересная возможность при развертывании однотипных серверов. Вы можете установить необходимые компоненты на эталонном Windows Server и экспортируете список установленных ролей в CSV файл:

Get-WindowsFeature | where <$_.Installed -eq $True>| select name | Export-Csv C:\ps\Roles.csv -NoTypeInformation –Verbose

Потом вы можете использовать этот CSV файл для установки такого же набора ролей на других типовых серверах:

Import-Csv C:\PS\Roles.csv | foreach

Если роль или компонент уже установлен, команда вернет NoChangeNeeded и продолжит установку следующей роли.

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

$servers = (‘srv1’, ‘srv2’,’srv3’)
foreach ($server in $servers)

Как удалить роль или компонент в Windows Server с помощью PowerShell?

Для удаления ролей и компонентов Windows Server используется командлет Remove-WindowsFeature .

Например, чтобы удалить роль принт-сервера, выполните команду:

Remove-WindowsFeature Print-Server -Restart

Быстрая настройка серверов с помощью PowerShell Desired State Configuration

Во многом работа системного администратора не отличается оригинальностью задач. Так или иначе, большинство заданий – это повторяющиеся операции, которые сводятся к созданию, удалению, изменению настроек, установки и настройки ролей и компонентов системы. Абсолютно естественным является желание максимально автоматизировать такие задачи. Одним из инструментов, спешащих на помощь администратору, является PowerShell Desired State Configuration, которая впервые была представлена в Windows Server 2012 R2. О том, что это такое и как может облегчить жизнь IT-специалиста использование Desired State Configuration мы и поговорим в этой статье.

Читайте также:  Windows form show message

Логично начать с того, что же вообще такое PowerShell Desired State Configuration. Я в большинстве случаев не люблю переводить английские термины, т.к. не всегда переведенный вариант отражает нужный смысл. В этом случае, мы имеем дело с исключением. Desired State Configuration переводится как «настройка требуемого состояния», и этот перевод как нельзя лучше отражает смысл технологии.

Используя PowerShell DSC, вы описываете как хотите, чтобы ваша система выглядела в конечном итоге, и далее происходит ее автоматическая настройка в соответствии с заданными требованиями.

PowerShell Desired State Configuration – это очень мощный инструмент, который может значительно облегчить вам процесс настройки системы. Недавно на портале MVA вышел курс, в котором рассказывается обо всех аспектах этой технологии. А в этой статье я хочу рассказать о технологии и её основных преимуществах.

Системные требования

Каких-то особенных системных требований у DSC нет. Desired State Configuration – это технология Microsoft, представленная в рамках Windows Management Framework 4.0, и предназначенная для декларативной конфигурации системы. Соответственно, для того, чтобы Desired State Configuration корректно работала, нужно установить Windows Management Framework 4.0 или выше. WMF 4.0 предустановлен в Windows 8.1 и Windows Server 2012 R2 (но для корректной работы нужно обновление KB28883200). Также этот Framework доступен для Windows 7, Windows Server 2008 R2 и Windows Server 2012 (тут нужно не забыть установить еще и .NET 4.5). В связи с тем, что можно бесплатно обновиться с Windows 8 на Windows 8.1, WMF 4 для Windows 8 не доступен.

Конфигурация и её применение

Теперь давайте поговорим о том, как работает Desired State Configuration. Давайте представим следующую задачу: нам необходимо развернуть веб-сайт на нашем сервере. Для этого нужно установить IIS, ASP .NET, а также сам контент сайта. Это не слишком сложная операция. Тем не менее, мы потратим определенное время, чтобы установить какие-то недостающие элементы или же компоненты сервера, которые необходимы для корректной работы. В случае, если установку мы осуществляем на уже используемом компьютере, можно столкнуться с различными конфликтами. Еще большая путаница возникнет, если нам нужно настроить сразу несколько серверов с одинаковой конфигурацией.

Использование Desired State Configuration позволяет решить эту проблему. Далее я приведу конфигурационный скрипт, с помощью которого мы проведем настройку.

С одной стороны, PowerShell DSC начинается с конфигурационного скрипта. С другой, этот скрипт не делает абсолютно НИ-ЧЕ-ГО! В нем мы просто декларативно описываем, как хотим, чтобы система выглядела.

В DSC было введено новое ключевое слово Configuration, с помощью которого описывается главный контейнер конфигурации. По сути, этот блок является функцией. Внутри блока Сonfiguration вы можете указать желаемые настройки для каждого из компьютеров, которые есть в вашем окружении.

Блок конкретного компьютера начинается с ключевого слова Node. Далее следует имя целевого компьютера, которое может быть как постоянным, так и задаваться при помощь переменной. Внутри блока Node вы уже указываете желаемую настройку для вашего конечного компьютера, с помощью ресурсов.

Читайте также:  Windows как запустить приложение от другого имени пользователя

Ресурсы DSC – это специализированные модули PowerShell, с помощью которых и осуществляется финальная настройка целевых узлов. Ресурсы разделяются на встроенные и пользовательские. Встроенных ресурсов всего 12. Тем не менее легко можно дописать недостающие ресурсы, если возникнет такая необходимость.

Что происходит в нашем скрипте?
Мы просто описываем то, как наша система должна выглядеть.

С помощью этой команды мы убеждаемся, что нужные нам компоненты будут присутствовать на конечном компьютере, после того, как конфигурация будет применена.

Применение конфигурации выглядит следующим образом:

После запуска конфигурационного скрипта создается MOF-файл (или Managed Object Format файл). Это текстовый файл, в котором содержатся все требования по настройке, которые в дальнейшем применяются на целевом компьютере. Имя MOF-файла будет соответствовать значению Node. Сам файл будет находиться в папке, название которой будет совпадать с названием Configuration. Здесь важно отметить, что использование MOF-файлов позволяет использовать DSC не только для настройки компьютеров под управлением Windows, но и под управлением Linux.

Далее необходимо MOF-файл передать на целевой компьютер (на котором мы хотим развернуть сайт). Конфигурация применяется двумя способами: с помощью метода Push (конфигурационный скрипт должен быть перенесен на конечный компьютер вручную) или метода Pull (создается Pull Server, который периодически проверяет корректность конфигурации, и если клиент сконфигурирован неверно, то Pull Server отправляет на него требуемые настройки). Применение конфигурации осуществляется с помощью следующего командлета:

C помощью параметра –Path указываем путь к MOF-файлу. Время применения конфигурации зависит от того, насколько соответствует текущая настройка компьютера тем требованиям, что указаны в MOF-файле.

После применения конфигурации возможность PowerShell DSC не заканчиваются. Ведь часто нам нужно определить произошли ли какие-то изменения в настройках. Сделать это можно с помощью командлета:

Запустив его, мы запустим проверку: совпадает ли текущая конфигурация системы с той, что прописана в MOF-файле. Если конфигурации совпадают, то будет возвращено значение «True», в противном случае – «False».

Что делать, если мы узнаем об изменении конфигурации? Если мы используем PowerShell DSC достаточно всего лишь снова запустить командлет:

И все недостающие элементы будут восстановлены.

Преимущества Desired State Configuration

Еще раз проговорю, в чем же заключаются преимущества PowerShell Desired State Configuration.

  • Использование PowerShell DSC позволяет точно настроить конечный компьютер без каких-либо дополнительный проверок. Мы просто описываем как хотим, чтобы системы выглядела; все остальное делается автоматически.
  • PowerShell DSC позволяет отследить возможные изменения настроек и быстро их исправить, опять-таки, без дополнительных проверок.
  • С помощью PowerShell DSC можно одновременно и одинаково сконфигурировать несколько компьютеров.

Надеюсь, эта статья была вам полезной.

Подробнее о том, как создавать свои собственные ресурсы или как настроить Pull Server для PowerShell DSC вы можете узнать из курса на портале MVA.

Удачи в применение PowerShell Desired State Configuration для настройки ваших систем!

Оцените статью