Поделиться через


Устанавливаем роли на множество серверов с помощью 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
}
  1. Целевые серверы будут автоматически перезагружены после добавления  выбранных ролей или компонентов.
  2. Запустим функцию, подготовив следующий файл.
    1. Создадим переменную, которая будет хранить имена целевых серверов, разделенных запятыми. В нашем примере, это будет  переменная $ServerNames, включающая два сервера:  Contoso_01 и Contoso_02.

      # Sample Invocation $ServerNames = 'Contoso_01', 'Contoso_02' Invoke-WindowsFeatureBatchDeployment -ComputerNames $ServerNames -ConfigurationFilePath C:\Users\Dmitry\Desktop\DeploymentConfigTemplate.xml
      
    2. Здесь $ServerNames это наша созданная на прошлом шаге переменная, и C:\Users\Dmitry\Desktop\DeploymentConfigTemplate.xml  это файл параметров конфигурации, подготовленный нами заранее.**                                                                                                                                                                                          Invoke-WindowsFeatureBatchDeployment –ComputerNames $ServerNames –ConfigurationFilePath C:\Users\Dmitry\Desktop\DeploymentConfigTemplate.xml**

  3. Когда установка будет закончена, проверьте результат, открыв страницу All Servers в Server Manager, и выбрав сервер, на который вы устанавливали роли и компоненты,  проверьте результат на странице Roles and Features выбранного сервера. Также вы можете просмотреть список установленных ролей и компонентов сервера, запустив командлет  Get-WindowsFeature с указанием имени сервера  (Get-WindowsFeature -ComputerName ).