Устанавливаем роли на множество серверов с помощью PowerShell
Наверное, многие заметили, что на последнем шаге добавления роли можно сохранить параметры конфигурации в файл. Если вы этого еще не сделали, запустите Add Roles and Features Wizard, выберите нужные роли и компоненты, кликните Export configuration settings на странице Confirm installation selections мастера добавления ролей.
Затем откроем сессию Windows PowerShell с повышенными привилегиями (Run as Administrator), и скопируем следующую функцию в окно консоли:
function Invoke-WindowsFeatureBatchDeployment {
param (
[parameter(mandatory)]
[string[]] $ComputerNames,
[parameter(mandatory)]
[string] $ConfigurationFilePath
)
# Разворачиваем компоненты на множество серверов одновременно.
$jobs = @()
foreach($ComputerName in $ComputerNames) {
$jobs += Start-Job -Command {
Install-WindowsFeature -ConfigurationFilePath $using:ConfigurationFilePath -ComputerName $using:ComputerName -Restart
}
}
Receive-Job -Job $jobs -Wait | Select-Object Success, RestartNeeded, ExitCode, FeatureResult
}
- Целевые серверы будут автоматически перезагружены после добавления выбранных ролей или компонентов.
- Запустим функцию, подготовив следующий файл.
Создадим переменную, которая будет хранить имена целевых серверов, разделенных запятыми. В нашем примере, это будет переменная
$ServerNames
, включающая два сервера: Contoso_01 и Contoso_02.# Sample Invocation $ServerNames = 'Contoso_01', 'Contoso_02' Invoke-WindowsFeatureBatchDeployment -ComputerNames $ServerNames -ConfigurationFilePath C:\Users\Dmitry\Desktop\DeploymentConfigTemplate.xml
Здесь
$ServerNames
это наша созданная на прошлом шаге переменная, и C:\Users\Dmitry\Desktop\DeploymentConfigTemplate.xml это файл параметров конфигурации, подготовленный нами заранее.** Invoke-WindowsFeatureBatchDeployment –ComputerNames $ServerNames –ConfigurationFilePath C:\Users\Dmitry\Desktop\DeploymentConfigTemplate.xml**
- Когда установка будет закончена, проверьте результат, открыв страницу All Servers в Server Manager, и выбрав сервер, на который вы устанавливали роли и компоненты, проверьте результат на странице Roles and Features выбранного сервера. Также вы можете просмотреть список установленных ролей и компонентов сервера, запустив командлет
Get-WindowsFeature
с указанием имени сервера (Get-WindowsFeature -ComputerName
).