Множественная установка из PowerShell в Windows 2012R2
Итак, вам требуется добавить роли, службы ролей или компоненты на множество серверов. Для автоматизации этого процесса воспользуемся Power-Shell-м. При этом необходим конфигурационный файл. В целях демонстрации мы воспользуемся мастером добавления ролей и компонентов для экспорта информации по установке роли в ХМL-файл. Например, Вам нужен (Remote Desktop Services). Для этого запустите мастер добавления роли на одном из серверов под управлением Windows 2012R2, но остановитесь на экране подтверждения добавления роли (последнем экране мастера). 
В нижней части этого экрана имеется ссылка Ехрогt configuration settings (Экспортировать параметры конфигурации), которая позволяет экспортировать конфигурацию в файл. 
Сохраните конфигурацию в файл DeploymentConfigTemplate.xml в корневой папке на диске или в другом удобном для Вас месте. Теперь, когда файл сохранен, можно прервать работу мастера. Не щелкайте на кнопке lnstall (Установить)!
Почти все готово к установке роли на множество серверов с применением файла сценария. Откройте окно PowerShell, щелкнув правой кнопкой мыши на значке PowerShell в панели задач, и выберите в контекстном меню пункт Run as Administrator (Запуск от имени администратора).
Внутри PowerShell добавьте следующую функцию:
function Invoke-Windows Feat ureBatchDeployment
param (
[parameter (mandatory)]
[string [J] $ComputerNames ,
[parameter (mandatory)]
[string] $ConfigurationFilePath
)
# Развернуть компоненты одновременно на множестве компьютеров .
$jobs = @ ( )
foreach ($ComputerName in $ComputerNames)
$jobs + = Start-Job-Command <
Install-Windows Feature-ConfigurationFilePath
$using:ConfiguratioпFilePath -ComputerName $using:ComputerName -Restart
>
Receive-Job — Job $jobs -Wait1Seect -ObjectSuccess,
RestartNeeded, ExitCode , FeatureResult
Эта функция имеет несколько параметров: список имен компьютеров на которые будет добавлена роль RDS, и путь к файлу со сценарием. Вызовите созданную функцию и передайте необходимые параметры, с помощью показанного ниже фрагмента кода:
$ServerNames = ‘Server_l’, ‘Server_2’
Invoke-Windows FeatureBatchDeployment -ComputerNames
$ServerNames -ConfigurationFile Path C:\DeploymentConfigTemplate.xml
В следующей строке из фрагмента кода указаны имена серверов, Вы должны подправить на свои имена серверов. В примере заданы имена серверов Server_1 и Server_2, разделенные запятой. Можно указывать столько серверов, сколько необходимо, например:
$ServerNames = ‘ TestServer_l’ , ‘Server_2’, ‘Server_3’, ‘LabServer_4’ и тд..
В следующей строке из фрагмента кода необходимо указать реальный путь к сохраненному ранее ХМL-файлу:
-ConfigurationFilePath C:\DeploymentConfigTemplate.xml
После ввода последней строки нажмите и процесс установки начнется.
Проверить установку можно с помощью такой команды:
PS C:\Users\Administrator> Get-WindowsFeature
Устанавливаем PowerShell в старых версиях Windows
Установка PowerShell в Windows
PowerShell — это современная замена комадной строки в Windows, альтернатива Bash от Microsoft и просто мощный инструмент в умелых руках. Тем не менее, есть он далеко не во всех операционных системах Windows — первой операционной системой, в которой был встроен PowerShell, была Windows 7. К счастью, установить его можно и на более старые системы — такие как Windows XP, Vista и их серверные аналоги. Делается это с помощью установки комплекта Windows Management Framework.
Программная часть компьютера при этом должна соответствовать следующим требованиям:
Операционная система:
Windows XP с установленным Service Pack 3
Windows Server 2003 с установленными Service Pack 2
Windows Vista с установленными Service Pack 1 или Service Pack 2
Windows Server 2008 с установленными Service Pack 1 или Service Pack 2
Установленный Microsoft .NET Framework 2 (так же подходит .NET Framework 3 и .NET Framework 3.5).
Скачать обновления для нужной операционной системы, содержащие в себе Windows Management Framework, в том числе Windows PowerShell 2.0 и WinRM 2.0 можно по следующим ссылкам:
Windows XP и Windows Embedded (обновление KB968930):
Windows Server 2003 (обновление KB968930):
Windows Server 2003 x64 (обновление KB968930):
Windows Vista (обновление KB968930):
Windows Vista x64 (обновление KB968930):
Windows Server 2008 (обновление KB968930):
Windows Server 2008 x64 (обновление KB968930):
После установки, исполняемый файл PowerShell можно будет найти по адресу C:\WINDOWS\system32\WindowsPowerShell\v1.0, а так же в меню Пуск.
Установка .NET Framework 3.5 в Windows Server 2012 R2
Большинство современных Windows-приложений для своей нормальной работы требуют наличие установленной платформы .NET Framework. Мастер установки ролей и компонентов Server Manager в Windows Server 2012 R2 позволяет запустить установку двух разных версий .NET Framework — 3.5 и 4.5. Установка .NET Framework 4.5 обычно вопросов не вызывает – вся процедура крайне проста, чего не скажешь про установку .NET Framework 3.5.
Дело в том, что при попытке установить .NET Framework 3.5 в Windows Server 2012 R2 со стандартными настройками появляется ошибка «Installation of one of more roles, role services or features failed. The source files could not be found…».
В русской версии ошибка выглядит так:
Причина такого поведения мастера установки заключается в том, что бинарные файлы .NET Framework 3.5 не являются частью локального кэша бинарных файлов, которые сохраняются на сервер при установке ОС. Сделано это в рамках концепции Features on Demand в Windows Server 2012 с целью уменьшения размера дискового пространства, занимаемого ОС под свои нужды.
Проверим наличие .NET Framework 3.5 в локальном репозитории, выполнив команду Powershell:
Как вы видите, искомый компонент находится в удаленном состоянии (Install State: Removed)
По-умолчанию, при установке NET Framework 3.5 через Server Manager, система пытается получить необходимые файлы с сайта Windows Update в Интернете (а не локального сервера WSUS), и если на сервере отсутствует доступ в интернет, установка завершается с ошибкой. Пользователю нужно самому указать путь к дистрибутиву ОС, из которого можно было бы установить недостающий компонент.
Чтобы установить .NET Framework 3.5 вручную достаточно, нажав кнопку Specify an alternative source path, указать альтернативный путь к папке с содержимым установочного диска Windows Server 2012 R2.
В качестве пути можно указать как локальную папку (в нашем примере это D:\source\sxs, где D:\ — буква локального DVD-привода с дистрибутивом Windows Server) или сетевой каталог.
Нажав, ОК система найдет бинарные файлы компонента .NET Framework 3.5.и установит его.
Ту же самую операцию можно выполнить и из командной строки, выполнив с правами администратора команду:
/Online – означает, что нужно обновлять текущую ОС, а не wim образ
/enable-feature /featurename:NetFX3 /all – необходимо установить платформу .NET Framework 3.5 со всеми функциями
/Source – путь к каталогу дистрибутива Windows, в котором находятся необходимые компоненты
/LimitAccess – предотвратить обращение к узлу Windows Update

Путь к «оригинальному» дистрибутиву Windows можно зафиксировать в системе на постоянной основе с помощью:
- С помощью параметра реестра RepairContentServerSource, который находится в ветке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing
- Или групповой политики Specify settings for optional component installation and component repair (политика правит этот же параметр в реестре)
Чтобы проверить наличие установленного .NET Framework 3.5, перейдите в каталог C:\Windows\Microsoft.NET\Framework64 и убедитесь, что среди каталогов установленных версий .NET появился v3.5.
В том случае, если указанные выше способы установки .NET Framework 3.5.1 вам не помогли, попробуйте следующие решения.
После установки некоторых обновлений, версия (билд) Windows Server 2012 R2 в системе может перестать соответствовать образу ОС, хранящемуся в имеющемся дистрибутиве. В этом случае установщик при сравнении версии ядра Windows отказывается устанавливать устаревшую версию компонента.
В этом случае как правило, при установке .NET Framework через dism появляется ошибка 0x800f081f. The source files could not be found
Решение: установить .Net через с серверов Microsoft:
- Сохраните в reg файл текущие настройки Windows Update в ветке HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\WindowsUpdate
- Удалите данную ветку и перезапустите службу: net stop wuauserv & net start wuauserv
- Запустите установку .Net из интернета: DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
- После окончания установки верните настройки WU, импортировав reg файл и еще раз перезапустите службу WindowsUpdate
dism /online /enable-feature /featurename:NetFX3 /all /Source:C:\tmp\winsxs /LimitAccess
Кроме того, если вы устанавливали на сервер дополнительный языковой пакет (Language Packs), перед установкой .NET Framework 3.5.1 его нужно удалить с помощью команды lpksetup.
Также проверьте в списке установленных обновлений системы наличие установленных патчей для NET 3.5 Framework (теоретически они вообще не должны были установится, если компонент NetFX3 не установлен).
Удалите данные обновления и после перезагрузки попытайтесь установить .NET 3.5.

Устанавливаем PowerShell в старых версиях Windows









