Instalación de .Net 3.5 en Windows 2012 R2

13

Así que estoy tratando de instalar .net 3.5 en un servidor Windows 2012 R2. He intentado a través de la función Agregar y a través de DISM, ambos fallan.

Cuando intento a través de Agregar características GUI, estoy usando la opción "Especificar ruta alternativa" Esto falla con el error "la instalación de uno o más roles, servicios de roles o características falló"

Cuando intento usar un PowerShell elevado para usar DISM, estoy usando el siguiente comando.

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

Esto falla con

Error: 0x800f0906 No se pudieron descargar los archivos de origen. Use la opción "fuente" para especificar la ubicación de los archivos necesarios para restaurar la función. Para obtener más información sobre cómo especificar una ubicación de origen, consulte http://go.microsoft.com/fwlink/?LinkId=243077

El archivo de registro DISM se puede encontrar en C: \ Windows \ Logs \ DISM \ dism.log

He seguido la KB enumerada anteriormente (243077) para establecer la ubicación de la política de grupo para la carpeta SXS. Reiniciado y sigue siendo el mismo error. El registro DSIM muestra lo siguiente

Error al procesar el comando enable-feature. - CPackageManagerCLIHandler :: ExecuteCmdLine (hr: 0x800f0906)

Un rápido google muestra que muchas personas están teniendo problemas con esto y que debe desinstalar KB2966826 y KB2966828, este servidor tampoco se ha instalado.

También probé el instalador .Net sin conexión y dice que debo agregarlo a través de las funciones de Windows. Todos los comandos se han ejecutado como administrador y mediante un mensaje elevado.

Mientras escribía esto, busqué y noté las "Preguntas similares" y examiné esto No se puede instalar .net 3.5 en el servidor de Windows 2012

Corriendo

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

Produjo el mismo error que el anterior.

Zapto
fuente
Si alguien ya ha estado administrando este servidor, entonces es probable que haya eliminado esa característica al eliminar los binarios del sistema operativo. 2012 ahora le permite eliminar archivos innecesarios para roles que no planea instalar. Es por eso que le solicita una ruta alternativa a los archivos de configuración. Haga una búsqueda de PowerShell para su comando y le dirá cómo especificar esa ruta alternativa.
Jon
Si tiene instalado KB2919355 (Actualización 1), debe usar archivos fuente que tengan integrado KB2919355. Esa es la única forma en que funcionó para mí.
Peter Hahndorf
¿Has instalado paquetes MUI adicionales?
magicandre1981
@ magicandre1981 Sin MUI, esta es una nueva instalación de Windows. Trabajamos para 1 aplicación por servidor (virtual). Intentaré sus sugerencias.
Zapto
¿Estás usando WSUS? Hay una configuración en la política de grupo que puede establecer que le dice a Windows que no busque estos archivos en WSUS, ya que no puede ser una fuente de instalación para esto.
briantist

Respuestas:

13

El comando que uso para instalar .NET Framework 3.5 en Windows 8.1 y Server 2012 R2 es:

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

Donde D: \ es la unidad ISO o DVD montada. La única diferencia con la suya es / LimitAccess , pero creo que esa es la parte importante, ya que evita que intente ponerse en contacto con Windows Update o WSUS. Por alguna razón, este aspecto (contactar con Windows Update) está totalmente roto para .NET Framework 3.5 en Windows 8 / 8.1 y Server 2012 / 2012R2 y siempre hará que falle.

Ver también: http://blogs.technet.com/b/askcore/archive/2012/05/14/windows-8-and-net-framework-3-5.aspx

Joshua McKinnon
fuente
mucho más fácil que serverfault.com/a/633171/157373
Jason Pyeron
Para cualquiera que busque el archivo cab dentro de la carpeta sxs, puede descargarlo desde androidfilehost.com/?fid=745425885120760819 . Además, el enlace de información en la respuesta ahora está archivado y se puede encontrar en el siguiente enlace docs.microsoft.com/en-us/archive/blogs/askcore/… .
Sam
6

Tuve el mismo problema cuando monté el disco de instalación de Windows o utilicé el DVD físico, y así es como lo solucioné:

  1. Cree una carpeta en la raíz (C: \ NetFx3 por ejemplo)
  2. Copie microsoft-windows-netfx3-ondemand-package.cab desde un disco de instalación de Windows. \ Sources \ sxs en la carpeta C: \ NetFx3
  3. Símbolo del sistema como administrador
  4. DISM.exe /online /enable-feature /featurename:NetFX3 /All /Source:C:\NetFX3 /LimitAccess
  5. La barra de progreso del texto irá al 100% cuando se complete y le dará un mensaje: "La operación se completó correctamente".

Por alguna razón, mi unidad óptica muestra los archivos en el disco, pero a DISM no le gusta, pero copiar los archivos a C: parece haber funcionado.

Peter
fuente
2

La solución para mí fue una combinación de estas respuestas. Estaba en una máquina con Windows Server 2012 R2.

Traté de evitar el hecho de que no tenía un ISO del sistema operativo disponible. Pero no pude hacerlo funcionar. Así que me vi obligado a encontrar un ISO para Windows Server 2012 R2.

1.) Inicie el Editor de directivas de grupo local o la Consola de administración de directivas de grupo (WIN + R y escriba gpedit.msc).

2.) Expanda Configuración del equipo, expanda Plantillas administrativas y luego seleccione Sistema.

3.) Abra la configuración "Especificar configuración para la instalación de componentes opcionales y la directiva de grupo de reparación de componentes", y luego seleccione Activado.

4.) Seleccione la casilla de verificación "Póngase en contacto con Windows Update directamente para descargar contenido de reparación en lugar de Windows Server Update Services (WSUS)". Haga clic en Aplicar, haga clic en Aceptar.

configuración de wsus

5.) Descargue un ISO del sistema operativo y monte la imagen. Descargué uno aquí: https://www.technig.com/download-windows-server-2012-r2-essentials-iso-file/

* Nota: es un archivo de 3Gb.

6.) Abra un Powershell elevado y ejecute:

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

* Nota: el ISO se montó en la "unidad E: \" en este caso.

instalar Net 3.5 con Powershell

* Este hilo fue un salvavidas. ¡Gracias a todos los colaboradores, especialmente a @Joshua McKinnon!

Guy Clark Rimel
fuente
Este parece haber sido el problema que tuve en mi escenario también. ¡Los cambios en la Política de grupo funcionaron de maravilla! No sé si vale la pena o no, pero configuré la Política de grupo de nuevo a lo que era una vez que se completó la instalación.
Sr. Moose
1

Ninguno de los métodos anteriores funcionó para mí. Resultó que tenía un servidor WSUS configurado. La única forma en que pude instalarlo fue

1) Regedit

2) Vaya a Computadora-> HKEY_LOCAL_MACHINE-> SOFTWARE-> Políticas-> Microsoft-> ​​Windows-> WindowsUpdate

3) Tomó nota de los valores de las dos claves: WUServer y WUStatusServer

4) Eliminado / Renombrado estas claves

5) Se detuvo e inició WindowsUpdate

6) Se agregó la característica .Net3.5

7) Vuelva a colocar las llaves y reinicie WindowsUpdate.

Espero que ayude

fórmica
fuente
1
Tenga en cuenta que puede cambiar el nombre de las claves de registro en lugar de eliminarlas.
Matthew Wetmore
¡Buen punto! Traté de borrarlos, pero eso no funcionó. Añadido en su sugerencia
formica
0

Cuando el comando DISM omite los medios especificados por el modificador / Source y busca los archivos en línea, significa que los archivos fuente en los medios especificados están dañados o no son aplicables a su servidor (no coinciden las versiones).

El código de error 0x800f0906 prueba aún más este comportamiento según lo documentado por Microsoft: https://technet.microsoft.com/en-us/library/dn482067.aspx

Su mejor opción es ayudar a resolver este problema:

  1. Cambie los medios que está utilizando, vuelva a descargar si es posible.
  2. Presentar los medios en diferentes métodos. Si es una VM, monte un ISO. Si es físico, grábelo en un DVD. si ambos archivos, copie en un disco local. Si eso falla, intente con una carpeta compartida.
  3. Si todo lo anterior falla, leí que está usando WSUS, intente configurar WSUS con una ubicación de "Fuente de actualización", donde haya copiado la carpeta sxs en una carpeta compartida, los servidores de su red usarán esa carpeta como fuente para instalar componentes de Windows: https://technet.microsoft.com/en-us/library/dn482065.aspx
  4. Si el uso de WSUS no es una opción por algún motivo, elimine el GPO del servidor y asegúrese de que la configuración no se almacena en caché ejecutando " gpupdate / sync / force ", una vez hecho, intente realizar la instalación en línea desde Internet con el comando " DISM / Online / Enable-Feature / FeatureName: NetFx3 / All "

Si todo lo anterior falla, le recomiendo que proporcione los registros de servicio de DISM para resolver cualquier problema adicional, pero en esta etapa, me inclinaría más para hacer una reconstrucción completa del servidor.

Noor Khaldi
fuente
Esto es casi correcto, más o menos. Simplemente quitando la configuración de GPO en el paso 4, es decir, configurándola como "no configurada", volverá a donde estaba en el paso 2. Al configurar la política como habilitada y marcando la casilla "Contactar con Windows Update directamente para descargar la reparación contenido en lugar de Windows Server Update Services (WSUS) "permitirá que el comando DISM se obtenga de Internet. El modificador / Online no significa "buscar desde Internet", sino "reparar una computadora [o en línea] en funcionamiento". #documentación
austinian
Sí, hice el uso de Internet para la actualización como último recurso, quería asegurarme de que pudiera usar cualquiera de los recursos locales en la LAN para hacer que la instalación sea rápida sin necesidad de descargarla de Internet. También conozco las secciones de DISM, / Online significa "Especifica que la acción se debe realizar en el sistema operativo que se está ejecutando actualmente" technet.microsoft.com/en-us/library/hh825079.aspx
Noor Khaldi
De acuerdo, pero el comando no verificará Internet si hay una ubicación de intranet definida para Windows Update (por ejemplo, un servidor WSUS). Verificará allí a menos que tenga el GPO en el paso 3 habilitado con la configuración Póngase en contacto con Windows Update directamente para descargar contenido de reparación en lugar de Windows Server Update Services (WSUS) habilitado.
austinian
0

Su comando DISM no encuentra los recursos necesarios porque está buscando la fuente "en línea". Windows 6.2+ (de forma predeterminada) verificará solo con el servidor de origen de actualización la instalación / reparación de componentes si se especifica un origen de actualización para el Servicio de actualización de Windows.

Si no desea configurar su servidor de fuente de actualización (generalmente WSUS) como la fuente para reparar / instalar componentes, puede habilitar la siguiente Política de grupo:

Configuración de la computadora \ Plantillas administrativas \ Sistema

Especifique la configuración para la instalación y reparación de componentes opcionales

Asegúrese de marcar esta opción:

Póngase en contacto con Windows Update directamente para descargar contenido de reparación en lugar de Windows Server Update Services (WSUS)

austinian
fuente
0

Asegúrese de que sus medios Fuentes coincidan absolutamente con su versión de Windows.

Pasé medio día tratando de usar Server 2012 ISO para instalar .NET35 en Server 2012 R2. Una vez que la fuente es correcta, el comando DISM (de esta respuesta ) funciona a la perfección.

alex.z
fuente
0

He tenido exactamente el mismo problema. Mi resolución fue eliminar el servidor de Active Directory, instalar .Net 3.5 y luego volver a agregarlo a AD. Estoy seguro de que tiene que ver con WSUS en alguna capa, pero eso lo resolvió para nosotros. Solo nos aseguramos de instalar 3.5 en todos los servidores antes de agregar al dominio.

Chris Satola
fuente
0

Hay muchas cosas en Internet sobre esto y la mayor parte se resumió en las respuestas aquí. Lo intentamos todo y nada funcionó. Incluso al apuntar a varias copias de la carpeta sxs, aún obtendría una variación del error "archivos fuente no encontrados".

Finalmente apunté a una parte de la carpeta winsxs en otro servidor completamente parcheado que tenía .net 3.5 (c: \ windows \ winsxs) y funcionó:

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

Mi teoría es que el proceso de instalación estaba buscando archivos de origen que coincidieran con los KB actuales en el servidor. Sé que hay otros artículos que apuntan a la eliminación de dos KB en particular, pero esos no aparecieron en nuestra lista de parches instalados.

También tenga en cuenta que las funciones de agregar / quitar no funcionaron con este recurso compartido. Tuve que usar DISM.

b_levitt
fuente