Cómo instalar .NET Framework 4 con PowerShell

A medida que las operaciones de TI han evolucionado y se han vuelto más intrincadas, la automatización se ha consolidado como un elemento fundamental. No podemos obviar la importancia de los scripts, sobre todo los PowerShell, en las infraestructuras informáticas modernas. PowerShell, con su capacidad para automatizar y agilizar tareas, se ha vuelto indispensable. Hoy hablaremos de un script PowerShell específico diseñado para instalar .NET Framework 4, una base esencial para muchas aplicaciones.

Antecedentes

.NET Framework de Microsoft actúa como plataforma de desarrollo de software y proporciona los servicios, bibliotecas y herramientas necesarios para desarrollar y ejecutar una amplia gama de aplicaciones. Es primordial que los profesionales de TI y los proveedores de servicios gestionados (MSP) dispongan de un método eficaz para instalar este marco y garantizar que las aplicaciones se ejecuten sin problemas. Nuestro script PowerShell cumple este propósito con funcionalidades añadidas, como la posibilidad de instalar desde una fuente sin conexión.

El script para instalar .NET Framework

#Requires -Version 5.1

<#
.SYNOPSIS
    Install NetFx4 features(.NET 4.x), with the option to install from an offline source.
.DESCRIPTION
    Install NetFx4 features(.NET 4.x), with the option to install from an offline source.
    An offline source can be an attached CD/DVD image of the OS's installer.
.EXAMPLE
     No parameters needed.
    Install NetFx4 features from Local Install/Windows Update/WSUS.
.EXAMPLE
     -OfflineSource "D:sourcessxs"
    Install NetFx4 features from a specified source.
.EXAMPLE
    PS C:> Install-DotNet4.ps1
    Install NetFx4 features from Local Install/Windows Update/WSUS.
.EXAMPLE
    PS C:> Install-DotNet4.ps1 -OfflineSource "D:sourcessxs"
    Install NetFx4 features from a specified source.
.OUTPUTS
    None
.NOTES
    General notes
    Release Notes:
    Initial Release
By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https://www.ninjaone.com/terms-of-use.
    Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. 
    Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. 
    Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. 
    Warranty Disclaimer: The script is provided “as is” and “as available”, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. 
    Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. 
    Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. 
    EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).
#>

[CmdletBinding()]
param (
    [Parameter()]
    [String]
    $OfflineSource
)

begin {
    $OSVersion = [System.Environment]::OSVersion.Version
}
process {
    if ($OSVersion -gt [Version]::new(6, 2)) {
        # Windows 8.1/Server 2012 R2 or greater
        $Packages = dism /Online /Get-Features /Format:Table
        if ($OfflineSource) {
            # Install .NET 3 and 4
            if ((Test-Path -Path $OfflineSource -ErrorAction SilentlyContinue)) {
                if ($($Packages | Select-String -Pattern "NetFx4" | Select-Object -First 1) -like "Disabled") {
                    dism /Online /Enable-Feature /FeatureName:NetFx4 /All /Source:$OfflineSource
                }
            }
            else {
                Write-Error "Path to $OfflineSource doesn't exist."
            }
        }
        else {
            if ($($Packages | Select-String -Pattern "NetFx4" | Select-Object -First 1) -like "Disabled") {
                dism /Online /Enable-Feature /FeatureName:NetFx4 /All
            }
        }
    }
    else {
        # Windows 8/Server 2012 or lesser
        # This requires copying the installer to the target in some way; either by downloading or shared folder as examples.
        Write-Output "More Info: https://ninjarmm.zendesk.com/hc/en-us/articles/360043992771-How-to-install-software-outside-of-3rd-Party-Patching"
        Write-Error "Use the Install Application script to install dotNetFx40_Full_x86_x64.exe"

        # The code below is an example of downloading, but isn't guarantied to work 100%.

        # Invoke-WebRequest -Uri "http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe" -OutFile "dotNetFx40_Full_x86_x64.exe"
        # dotNetFx40_Full_x86_x64.exe /q: http://download.microsoft.com/download/9/5/A/95A9616B-7A37-4AF6-BC36-D6EA96C8DAAE/dotNetFx40_Full_x86_x64.exe
        # Remove-Item -Path "dotNetFx40_Full_x86_x64.exe"
    }
}
end {}

 

Accede a más de 300 scripts en el Dojo de NinjaOne

Obtén acceso

Análisis detallado

Profundicemos en los componentes básicos de este script: 

  • Parámetros: el script comienza estableciendo un parámetro $OfflineSource. Si se proporciona, permite a los usuarios instalar el framework utilizando una fuente diferente a la predeterminada (como una fuente local). 
  • Verificación del entorno: recupera la versión actual del sistema operativo. 
  • Proceso: si la versión del sistema operativo es superior a Windows 8.1/Server 2012 R2, comprueba si hay paquetes disponibles. 
  • Dependiendo del parámetro $OfflineSource, se utiliza la fuente local o la predeterminada para instalar el framework. 
  • Para versiones de SO inferiores a Windows 8/Server 2012, el script ofrece una guía para la instalación, sugiriendo un método de descarga manual. 

Posibles casos de uso

Escenario: Imagina a Juan, administrador de TI de una empresa mediana. Están migrando algunas aplicaciones heredadas a un entorno más nuevo, que requiere .NET Framework 4 en todos los servidores. Algunos servidores tienen restringido el acceso online, por lo que es necesaria una instalación sin conexión. Con este script, Juan puede agilizar la instalación en varios servidores, ahorrando tiempo y garantizando la uniformidad. 

Comparaciones

La instalación tradicional de .NET Framework puede consistir en descargar manualmente el instalador y configurarlo, o en utilizar la instalación de Windows Feature. Nuestro script ofrece ventajas: 

  • Automatización: te permite programar o desplegar de forma instantánea en varios servidores. 
  • Flexibilidad: puedes elegir entre la instalación online o sin conexión. 
  • Comprobación de errores: proporciona información específica si algo no sale como estaba previsto. 

Preguntas frecuentes

  • ¿Puedo utilizar este script para versiones distintas de .NET Framework 4?
    Este script está diseñado específicamente para .NET Framework 4. Se necesitarían modificaciones para otras versiones. 
  • ¿Cómo puedo asegurarme de que mi fuente offline es correcta?
    Asegúrate de que la ruta proporcionada a $OfflineSource lleve a los archivos de instalación correctos. 

Implicaciones

Cuando se automatizan instalaciones, especialmente con scripts que modifican la configuración del sistema, existe un riesgo inherente. Una instalación errónea podría provocar vulnerabilidades en el sistema. Es esencial entender bien el script y probarlo en un entorno controlado antes de desplegarlo ampliamente. 

Recomendaciones

  • Realiza siempre una copia de seguridad del sistema antes de ejecutar scripts que modifiquen la configuración del sistema. 
  • Si utilizas una fuente externa, asegúrate de que procede de un proveedor legítimo y de confianza. 
  • Actualiza periódicamente el script para adaptarlo a las nuevas versiones del sistema operativo o a las actualizaciones de .NET Framework. 

Reflexiones finales

En el panorama informático actual, emplear herramientas como NinjaOne se ha convertido en algo fundamental. Como hemos visto con este script de instalación de .NET, la automatización puede simplificar tareas complejas. La plataforma integral de NinjaOne puede ayudar en el despliegue efectivo y la gestión de dichos scripts, garantizando que las operaciones de TI sigan siendo fluidas y eficientes. 

Próximos pasos

La creación de un equipo de TI próspero y eficaz requiere contar con una solución centralizada que se convierta en tu principal herramienta de prestación de servicios. NinjaOne permite a los equipos de TI supervisar, gestionar, proteger y dar soporte a todos sus dispositivos, estén donde estén, sin necesidad de complejas infraestructuras locales.

Obtén más información sobre NinjaOne Endpoint Management, echa un vistazo a un tour en vivoo tu prueba gratuita de la plataforma NinjaOne.

Categorías:

Quizá también te interese…

Ver demo×
×

¡Vean a NinjaOne en acción!

Al enviar este formulario, acepto la política de privacidad de NinjaOne.

Términos y condiciones de NinjaOne

Al hacer clic en el botón «Acepto» que aparece a continuación, estás aceptando los siguientes términos legales, así como nuestras Condiciones de uso:

  • Derechos de propiedad: NinjaOne posee y seguirá poseyendo todos los derechos, títulos e intereses sobre el script (incluidos los derechos de autor). NinjaOne concede al usuario una licencia limitada para utilizar el script de acuerdo con estos términos legales.
  • Limitación de uso: solo podrás utilizar el script para tus legítimos fines personales o comerciales internos, y no podrás compartirlo con terceros.
  • Prohibición de republicación: bajo ninguna circunstancia está permitido volver a publicar el script en ninguna biblioteca de scripts que pertenezca o esté bajo el control de cualquier otro proveedor de software.
  • Exclusión de garantía: el script se proporciona «tal cual» y «según disponibilidad», sin garantía de ningún tipo. NinjaOne no promete ni garantiza que el script esté libre de defectos o que satisfaga las necesidades o expectativas específicas del usuario.
  • Asunción de riesgos: el uso que el usuario haga del script corre por su cuenta y riesgo. El usuario reconoce que existen ciertos riesgos inherentes al uso del script, y entiende y asume cada uno de esos riesgos.
  • Renuncia y exención: el usuario no hará responsable a NinjaOne de cualquier consecuencia adversa o no deseada que resulte del uso del script y renuncia a cualquier derecho o recurso legal o equitativo que pueda tener contra NinjaOne en relación con su uso del script.
  • CLUF: si el usuario es cliente de NinjaOne, su uso del script está sujeto al Contrato de Licencia para el Usuario Final (CLUF).