null

Управление ролями и компонентами Windows Server, используя Get-WindowsFeature

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

Для выведения информации о всех доступных роля и компонентах Windows Server используется командлет

Get-WindowsFeature

. Если выполнить его без параметров, он выдает информацию о всех компонентах.

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

Для опреаций над ролями и компонентами необходимо использовать их имя, выводимое в графе Name (например, AD-Certificate). В случае, если состояние роли или компонента отображается как Removed , значит установочные файлы были удалены из репозитория системы,  и нужно заново скачать их, используя

Install-WindowsFeature [name]

, где [name] - имя компонента, например AD-Certificate, DHCP и тп.

В случае отсутствия соединения с интернет, можно воспользоваться дистрибутивом(пусть он будет диском F:) -

Install-WindowsFeature [name] -Source F:\sources\sxs

Список только  установленных(не всех доступных) компонентов сервера:

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

Для работы с удаленным сервером можно использовать(где [servername]  - его имя):

Get-WindowsFeature -ComputerName [servername] | Where installed | ft Name,Installstate

Как уже было указано выше, для установки ролей и компонентов используется командлет Install-WindowsFeature.

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

Install-WindowsFeature -name UpdateServices -whatif 

Одним из удобств использования PowerShell является возможность одновременной установки на множество однотипных серверов.

Для этого создаем(или копируем с эталонного сервера) файл .csv со списком устанавливаемых ролей.

Экспорт с эталонного сервера:

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

Результатом будет экспорт в файл C:\Roles.csv.

После чего можно использовать этот файл(при желании, можно его модифицировать вручную) для установки на множестве северов

Import-Csv C:\Roles.csv | foreach{ Install-WindowsFeature $_.name }

Если нужно установить одну роль на множество серверов:

$serv = ('server1', 'server2',’server3’)
foreach ($serv in $serv) {Install-WindowsFeature [name] -ComputerName $serv}

где $serv - переменная, содержащая список имен серверов, а [name] - имя устанавливаемой роли.

Удаление же ролей и компонентов с сервера не представляет никакой сложности, используя следующий командлет:

Remove-WindowsFeature [name] -Restart

добавление -Restart приведет к перезагрузке сервера после удаления роли.

Для просмотра возможных ролей можно также(кроме использования функционала Get-WindowsFeature)  выполнить

servermanagercmd -query

, после чего получим вывод списка возможных ролей.

 

Источники: https://technet.microsoft.com

Коротко о себе:

Работаю инженером в компании Tune IT.

Ничего не найдено. n is 0