четверг, 12 февраля 2015 г.

Установка .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 — 3.5.
Установка .Net Framework 3.5 в windows server 2012 r2
Дело в том, что при попытке установить .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 в windows 2012
Причина такого поведения мастера установки заключается в том, что бинарные файлы .NET Framework 3.5 не являются частью локального кэша бинарных файлов, которые сохраняются на сервер при установке ОС. Сделано это в рамках концепции Features on Demand в Windows Server 2012 с целью уменьшения размера дискового пространства, занимаемого ОС под свои нужды.
Проверим наличие .NET Framework 3.5 в локальном депозитарии, выполнив команду Powershell:
Get-WindowsFeature *Framework*
Get-WindowsFeature *Framework*
Как вы видите, искомый компонент находится в удаленном состоянии (Install State: Removed)
Система по-умолчанию пытается скачать необходимые файлы с сайта Windows Update (локальный сервер WSUS для этих целей не подойдет), и если это невозможно пользователю предлагается самому указать путь к дистрибутиву ОС, из которого можно было бы установить недостающий компонент.
Чтобы установить .NET Framework 3.5 вручную достаточно, нажав кнопку Specify an alternative source path, указать альтернативный путь к папке с содержимым установочного диска Windows Server 2012 R2.
Путь к каталогу дистрибутива windows server 2012 r2
В качестве пути можно указать как локальную папку (в нашем примере это D:\source\sxs, где D:\ — буква локального DVD-привода с дистрибутивом Windows Server) или сетевой каталог.
Путь d:\source\sxs
Нажав, ОК система найдет бинарные файлы компонента .NET Framework 3.5.и установит его.
Ту же самую операцию можно выполнить и из командной строки, выполнив с правами администратора команду:
dism /online /enable-feature /featurename:NetFX3 /all /Source:d:\sources\sxs /LimitAccess
/Online – означает, что нужно обновлять текущую ОС, а не образ
/enable-feature /featurename:NetFX3 /all – необходимо установить платформу .NET Framework 3.5 со всеми функциями
/Source – путь к каталогу дистрибутива Windows, в котором находятся необходимые компоненты
/LimitAccess – предотвратить обращение к узлу Windows Update
dism установка .NetFX3 из командной строки
Эта же операция на Powershell выглядит так:
Add-WindowsFeature NET-Framework-Core -Source d:\sources\sxs
Путь к «оригинальному» дистрибутиву Windows можно зафиксировать в системе на постоянной основе с помощью:
  • Параметра реестра RepairContentServerSource, который находится в ветке HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Servicing
  • Или групповой политики Specify settings for optional component installation and component repair (политика правит этот же параметр в реестре)
Групповая политика для указания каталога-источника компонентов windows