Установка .Net 3.5 в Windows 2012 R2

13

Поэтому я пытаюсь установить .net 3.5 на Windows 2012 R2 Server. Я пробовал через функцию добавления и через DISM оба не удаются.

При попытке с помощью графического интерфейса добавления компонентов я использую «Указать альтернативный путь». Это происходит с ошибкой «установка одной или нескольких ролей, служб ролей или функций не удалась»

При попытке с помощью Elevated PowerShell использовать DISM я использую следующую команду.

dism.exe /online /enable-feature /featurename:NetFX3 /Source:d:\sources\sxs 

Это не с

Ошибка: 0x800f0906 Исходные файлы не могут быть загружены. Используйте опцию «источник», чтобы указать расположение файлов, необходимых для восстановления функции. Для получения дополнительной информации об указании исходного местоположения см. Http://go.microsoft.com/fwlink/?LinkId=243077.

Файл журнала DISM находится по адресу C: \ Windows \ Logs \ DISM \ dism.log

Я следовал указанным выше КБ (243077), чтобы установить расположение групповой политики для папки SXS. Перезагрузил и все та же ошибка. Журнал DSIM показывает следующее

Ошибка при обработке команды enable-feature. - CPackageManagerCLIHandler :: ExecuteCmdLine (час: 0x800f0906)

Быстрый Google показывает, что у многих людей есть проблемы с этим, и что вы должны удалить KB2966826 и KB2966828, этот сервер еще не установлен.

Я также попробовал автономный установщик .Net, и он говорит, что я должен добавить его через функции Windows. Все команды были запущены от имени администратора и через привилегированное приглашение.

Во время написания этой статьи я искал, заметил «Похожие вопросы» и посмотрел на это Невозможно установить .net 3.5 на Windows Server 2012

Бег

dism.exe /online /enable-feature /featurename:NetFX3 /all

Выдается та же ошибка, что и выше.

Zapto
источник
Если кто-то уже управлял этим сервером, то, скорее всего, он удалил эту функцию, удалив двоичные файлы из ОС. Теперь 2012 позволяет удалять ненужные файлы для ролей, которые вы не планируете устанавливать. Вот почему он запрашивает альтернативный путь к установочным файлам. Выполните поиск PowerShell для своей команды, и он скажет вам, как указать этот альтернативный путь.
Джон
Если у вас установлено KB2919355 (обновление 1), вы должны использовать исходные файлы с интегрированным KB2919355. Это единственный способ, которым это сработало для меня.
Питер Хандорф
Вы установили дополнительные пакеты MUI?
magicandre1981
@ magicandre1981 Нет MUI, это свежая установка Windows. Мы работаем с 1 приложением на сервер (виртуальный). Я попробую ваши предложения.
Сапто
Вы используете WSUS? В групповой политике можно установить параметр, который указывает Windows не искать эти файлы в WSUS, поскольку он не может быть источником установки для этого.
бриантист

Ответы:

13

Команда, которую я использую для установки .NET Framework 3.5 в Windows 8.1 и Server 2012 R2:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

Где D: \ - это смонтированный дисковод ISO или DVD. Единственное отличие от вашего - это / LimitAccess , но я считаю, что это важная часть, так как она не позволяет пытаться связаться с Центром обновления Windows или WSUS. По какой-то причине этот аспект (обращение в Центр обновления Windows) полностью нарушен для .NET Framework 3.5 в Windows 8 / 8.1 и Server 2012 / 2012R2 и всегда будет вызывать сбой.

Смотрите также: http://blogs.technet.com/b/askcore/archive/2012/05/14/windows-8-and-net-framework-3-5.aspx

Джошуа Маккиннон
источник
гораздо проще, чем serverfault.com/a/633171/157373
Джейсон Пиерон
Любой, кто ищет файл cab внутри папки sxs, может загрузить его с androidfilehost.com/?fid=745425885120760819 . Кроме того, информационная ссылка в ответе теперь заархивирована и может быть найдена по ссылке ниже docs.microsoft.com/en-us/archive/blogs/askcore/… .
Сэм
6

У меня была такая же проблема, когда я монтировал установочный диск Windows или использовал физический DVD, и вот как я это исправил:

  1. Создайте папку под root (C: \ NetFx3, например)
  2. Скопируйте файл microsoft-windows-netfx3-ondemand-package.cab с установочного диска Windows. \ Sources \ sxs в папку C: \ NetFx3
  3. Командная строка от имени администратора
  4. DISM.exe /online /enable-feature /featurename:NetFX3 /All /Source:C:\NetFX3 /LimitAccess
  5. По завершении выполнения текстовый индикатор хода выполнения достигнет 100% и выдаст сообщение: «Операция завершена успешно».

По какой-то причине мой оптический привод показывает файлы на диске, но DISM это не нравится, но копирование файлов в C: похоже, сработало.

Питер
источник
2

Решением для меня было сочетание этих ответов. Я был на машине с Windows Server 2012 R2.

Я попытался обойти тот факт, что у меня не было ISO операционной системы под рукой. Но не мог заставить его работать. Поэтому я был вынужден найти ISO для Windows Server 2012 R2.

1.) Запустите редактор локальной групповой политики или консоль управления групповой политикой (WIN + R и введите gpedit.msc).

2.) Разверните Конфигурация компьютера, разверните Административные шаблоны и выберите Система.

3.) Откройте параметр «Задать параметры для установки дополнительных компонентов и групповой политики восстановления компонентов», а затем выберите «Включено».

4.) Установите флажок «Связаться с Центром обновления Windows напрямую, чтобы загрузить содержимое для восстановления вместо служб Windows Server Update Services (WSUS)». Нажмите Apply, нажмите Ok.

настройки wsus

5.) Загрузите ISO-образ ОС и смонтируйте образ. Я скачал один здесь: https://www.technig.com/download-windows-server-2012-r2-essentials-iso-file/

* Примечание: это файл 3Gb.

6.) Откройте повышенный Powershell и запустите:

DISM / Online / Enable-Feature / Имя_функции: NetFx3 / All / LimitAccess / Источник: E: \ sources \ sxs

* Примечание: в этом случае ISO был подключен к «E: \ drive».

установить Net 3.5 с Powershell

* Эта тема была спасением жизни. Спасибо всем авторам, особенно @ Джошуа Маккиннон!

Гай Кларк Римел
источник
Похоже, это была проблема, с которой я столкнулся в моем сценарии. Изменения в групповой политике сработали! Я не знаю, стоит ли это того или нет, но я установил для групповой политики значение, которое было после завершения установки.
Мистер Лось
1

Ни один из вышеперечисленных методов не работал для меня. Оказалось, у меня настроен сервер WSUS. Единственный способ, которым я мог установить это, был

1) Regedit

2) Перейдите в Компьютер-> HKEY_LOCAL_MACHINE-> ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ-> Политики-> Microsoft-> ​​Windows-> WindowsUpdate

3) Запомнил значения двух клавиш: WUServer и WUStatusServer

4) Удалены / переименованы эти ключи

5) Остановлен и запущен WindowsUpdate

6) Добавлена ​​функция .Net3.5

7) Поставьте ключи обратно и перезапустите WindowsUpdate.

Я надеюсь, что это помогает

огнеупорная пластмасса
источник
1
Обратите внимание, что вы можете переименовать ключи реестра, а не удалять их.
Мэтью Уэтмор
Хорошая точка зрения! Я пытался очистить их, но это не сработало. Добавлено в ваше предложение
formica
0

Когда команда DISM пропускает носитель, указанный переключателем / Source, и начинает поиск файлов в сети, это означает, что исходные файлы на указанном носителе либо повреждены, либо неприменимы к вашему серверу (несоответствие версий).

Код ошибки 0x800f0906 дополнительно подтверждает это поведение, задокументированное Microsoft: https://technet.microsoft.com/en-us/library/dn482067.aspx

Лучше всего помочь решить эту проблему:

  1. Измените носитель, который вы используете, по возможности загрузите заново.
  2. Представлять СМИ разными способами. Если это ВМ, смонтируйте ISO. Если это физическое, запишите на DVD. если оба файла, скопируйте на локальный диск. Если это не удается, попробуйте общую папку.
  3. Если все вышеперечисленное дает сбой, я прочитал, что вы используете WSUS, попробуйте настроить WSUS с местоположением «Update Source», где у вас есть папка sxs, скопированная в общую папку, серверы в вашей сети будут использовать эту папку в качестве источника для установки компонентов Windows: https://technet.microsoft.com/en-us/library/dn482065.aspx
  4. Если по какой-либо причине использование WSUS невозможно, удалите объект групповой политики с сервера и убедитесь, что его настройки не кэшируются, запустив « gpupdate / sync / force », после чего попробуйте выполнить установку в Интернете из Интернета с помощью команды « DISM / Online / Enable-Feature / FeatureName: NetFx3 / All "

Если все вышеперечисленное дает сбой, я настоятельно рекомендую предоставить журналы обслуживания DISM для дальнейшего устранения неполадок, но на этом этапе я бы больше склонялся к полной перестройке сервера.

Нур Халди
источник
Это почти правильно, Сорта. Просто удалив параметры объекта групповой политики на шаге 4, т. Е. Установив его как «не настроенный», вы вернетесь туда, где находились на шаге 2. Установив политику включенной и установив флажок «Связаться с Центром обновления напрямую, чтобы восстановить восстановление» содержимое вместо служб Windows Server Update Services (WSUS) "позволит команде DISM извлекать данные из Интернета. Переключатель / Online не означает «получать из Интернета», он означает «обслуживание работающего [или онлайн] компьютера». # документация
австралиец,
Да, я использовал Интернет для обновления в качестве крайней меры, я хотел убедиться, что он может использовать любой из локальных ресурсов в локальной сети для быстрой установки без загрузки из Интернета. Я знаю и о дисках DISM, / Online означает «Указывает, что действие должно быть предпринято в операционной системе, которая в данный момент работает» technet.microsoft.com/en-us/library/hh825079.aspx
Нур Халди,
Хорошо, но команда не будет проверять Интернет, если для Центра обновления Windows определено местоположение в интрасети (например, сервер WSUS). Он будет проверяться, если у вас не включен объект групповой политики на шаге 3 с параметром Связаться с Центром обновления Windows напрямую, чтобы загрузить восстановительный контент вместо включенных служб Windows Server Update Services (WSUS) .
австралиец
0

Ваша команда DISM не находит необходимые ресурсы, потому что она проверяет источник "онлайн". Windows 6.2+ будет (по умолчанию) проверять только с сервером источника обновлений для установки / восстановления компонента, если для службы Центра обновления Windows указан источник обновлений.

Если вы не хотите настраивать сервер источника обновлений (обычно WSUS) в качестве источника для восстановления / установки компонентов, вы можете включить следующую групповую политику:

Конфигурация компьютера \ Административные шаблоны \ Система

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

Не забудьте проверить эту опцию:

Обратитесь непосредственно к Центру обновления Windows, чтобы загрузить восстановительный контент вместо служб Windows Server Update Services (WSUS).

austinian
источник
0

Убедитесь, что ваши носители Sources полностью соответствуют вашей версии Windows.

Я потратил полдня, пытаясь использовать Server 2012 ISO для установки .NET35 на Server 2012 R2. Если источник верен, команда DISM (из этого ответа ) работает без сбоев.

Alex.z
источник
0

У меня была точно такая же проблема. Мое решение было удалить сервер из Active Directory, установить .Net 3.5, а затем добавить обратно в AD. Я уверен, что это связано с WSUS на каком-то уровне, но это решило это для нас. Мы просто устанавливаем 3.5 на всех серверах перед добавлением в домен.

Крис Сатола
источник
0

Я смог решить эту проблему с помощью мастера добавления функций диспетчера сервера и там указать альтернативный источник.

Получил эту информацию от http://www.danielclasson.com/install-net-framework-35-server-2012/

Вариант 1 у меня тоже не сработал, вариант 2 успешно завершен.

Mickeybyte
источник
0

В интернете есть много материала по этому вопросу, и большинство из них было обобщено в ответах здесь. Мы попробовали все это, и ничего из этого не сработало. Даже если указывать на различные копии папки sxs, она все равно получит вариант ошибки «исходные файлы не найдены».

Я наконец указал на общую папку winsxs на другом полностью пропатченном сервере с .net 3.5 (c: \ windows \ winsxs), и он заработал:

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:\\otherserver\winsxs

Моя теория состоит в том, что процесс установки искал исходные файлы, которые соответствуют текущим КБ на сервере. Я знаю, что есть другие статьи, указывающие на удаление двух конкретных КБ, но они не отображаются в нашем списке установленных исправлений.

Также обратите внимание, что функции добавления / удаления не работают с этим общим ресурсом. Я должен был использовать DISM.

b_levitt
источник