Cómo activar la actualización automática a Windows 11 mediante un script personalizado de PowerShell

Con la llegada de Windows 11, permitir su actualización se convirtió en un objetivo primordial para los profesionales de TI. Comprender y gestionar las transiciones de los sistemas operativos es fundamental en el sector de las TI, sobre todo porque las empresas se esfuerzan para seguir siendo compatibles con las últimas tecnologías. El script en cuestión ofrece una forma simplificada de allanar el camino para la actualización automática a Windows 11.

Antecedentes

El propósito del script es sencillo: permitir la actualización automática a Windows 11. Diseñado específicamente para la arquitectura del sistema operativo Windows 10, su objetivo principal es activar la oferta de actualización automática a Windows 11 para los usuarios. Para que los profesionales de TI y los proveedores de servicios gestionados (MSP), es fundamental garantizar que los usuarios finales reciban las actualizaciones a tiempo y sin complicaciones. Manteniendo la compatibilidad del sistema y usando las últimas funciones, las empresas pueden garantizar un rendimiento y una seguridad óptimos.

El script para activar la actualización automática a Windows 11

<#
.SYNOPSIS
    Enables Windows 11 upgrade.
.DESCRIPTION
    Enables Windows 11 upgrade.
.EXAMPLE
    No parameters needed
    Enables Windows 11 upgrade.
.OUTPUTS
    None
.NOTES
    Minimum OS Architecture Supported: Windows 10
    Release Notes:
    Allows the upgrade offer to Windows 11 to appear to users
    (c) 2023 NinjaOne
    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 ()

begin {
    function Test-IsElevated {
        $id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
        $p = New-Object System.Security.Principal.WindowsPrincipal($id)
        $p.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)
    }
}
process {
    if (-not (Test-IsElevated)) {
        Write-Error -Message "Access Denied. Please run with Administrator privileges."
        exit 1
    }

    $Splat = @{
        Path        = "HKLM:SOFTWAREPoliciesMicrosoftWindowsWindowsUpdate"
        Name        = @("TargetReleaseVersion", "TargetReleaseVersionInfo")
        ErrorAction = "SilentlyContinue"
    }

    Remove-ItemProperty @Splat -Force
    Remove-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindowsUpdateUXSettings" -Name "SvOfferDeclined" -Force -ErrorAction SilentlyContinue
    $TargetResult = Get-ItemProperty @Splat
    $OfferResult = Get-ItemProperty -Path "HKLM:SOFTWAREMicrosoftWindowsUpdateUXSettings" -Name "SvOfferDeclined" -ErrorAction SilentlyContinue
    if ($null -ne $TargetResult -or $null -ne $OfferResult) {
        Write-Host "Failed to enable Windows 11 Upgrade."
        exit 1
    }
    exit 0
}
end {}

 

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

Obtén acceso

Descripción detallada del script para activar la actualización automática a Windows 11

Fase de preparación

El script para activar la actualización automática a Windows 11 comienza con un atributo CmdletBinding, comúnmente utilizado para funciones avanzadas en PowerShell. No requiere ningún parámetro.

Seguidamente, el script comprueba si el usuario que ejecuta el script tiene derechos administrativos con la función Test-IsElevated.

Fase de ejecución

Si el usuario no tiene derechos administrativos, aparece un mensaje de error.

El script define una variable $Splat que contiene información relacionada con la ruta del registro de Windows Update y algunas propiedades.

Entonces, intenta eliminar determinadas propiedades del registro relacionadas con la actualización de Windows mediante el comando Remove-ItemProperty, con lo que se eliminan posibles bloqueos o versiones de destino específicas que puedan impedir la actualización.

Por último, el script para activar la actualización automática a Windows 11 comprueba si estas propiedades del registro se han eliminado correctamente. Si no ha sido el caso, es señal de un fallo en la habilitación de la actualización.

Fase de finalización

El script para activar la actualización automática a Windows 11 sale con un código de estado. Un cero (0) indica que se ha completado correctamente, mientras que un uno (1) significa que se ha producido un error.

Posibles casos de uso

Imagina a un profesional de TI, Juan, que trabaja para una mediana empresa. La empresa decide pasar a Windows 11 para aprovechar sus nuevas funciones. Juan, encargado de garantizar una transición sin contratiempos, utiliza este script para activar por lotes la actualización en todos los sistemas, ahorrando un importante trabajo manual.

Enfoque alternativo

Los métodos tradicionales para habilitar la actualización automática a Windows 11 pueden implicar cambios manuales en la configuración del sistema o el uso de herramientas basadas en GUI, que consumen mucho tiempo y son propensas a errores. Este script automatiza el proceso, haciéndolo más eficiente y resistente a errores.

Preguntas frecuentes

  1. ¿Funcionará este script para otros sistemas operativos que no sean Windows 10?
    Tal y como se menciona anteriormente, el script está diseñado principalmente para Windows 10.
  2. ¿Y si el script no funciona?
    Es esencial ejecutar el script con derechos administrativos. En caso de problemas, es aconsejable volver a ejecutarlo o consultar a especialistas en TI.

Implicaciones

Aunque el script ofrece una forma de habilitar la actualización a Windows 11 sin problemas, cualquier proceso automatizado conlleva riesgos. Alterar la configuración del registro puede tener consecuencias no deseadas. Los profesionales de TI deben asegurarse de contar con estrategias de copia de seguridad, probar el script en entornos controlados y dar siempre prioridad a la seguridad informática.

Recomendaciones

  • Haz siempre copias de seguridad de los datos críticos y de la configuración del sistema antes de ejecutar scripts.
  • Prueba el script en una pequeña muestra de máquinas antes de realizar un despliegue generalizado.
  • Asegúrate de que los usuarios estén informados de las actualizaciones para evitar sorpresas.

Reflexiones finales

La transición a nuevas versiones del sistema operativo puede resultar intimidante. El uso de herramientas y scripts como que hemos visto en este post puede facilitar el proceso. Además, una plataforma de gestión de TI como NinjaOne puede ayudar aún más en la gestión de estas transiciones, ofreciendo capacidades de supervisión y automatización que son muy valiosas en un panorama de TI tan cambiante como el actual.

Categorías:

Quizá también te interese…

×

¡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).