Cómo automatizar las actualizaciones de Windows mediante PowerShell: Breve descripción

La gestión de parches es un aspecto crucial de la administración de infraestructuras de TI, al igual que hacer backups de estaciones de trabajo de Windows. Con la solución de gestión de parches adecuada, puede mejorar su sistema probando o instalando las últimas actualizaciones y parches de software. Los parches se consideran correcciones temporales de problemas existentes entre versiones completas del software. Si la gestión de parches se lleva a cabo con eficacia, podrá abordar con prontitud las vulnerabilidades de su sistema y mitigar cualquier amenaza potencial.

Windows ofrece su propia solución de gestión de parches: Windows Update. Sin embargo, muchos administradores de TI siguen considerando el proceso de gestión de parches demasiado complejo y lento. Además, las actualizaciones del sistema pueden afectar a su flujo de trabajo de producción, ya que suelen iniciarse automáticamente durante el horario laboral. Con los cmdlets de PowerShell, puede automatizar las actualizaciones de Windows, ahorrándole esfuerzo y tiempo.

Esta entrada de blog describe cómo puede utilizar PowerShell para instalar actualizaciones de Windows e incluye una lista de comandos de PowerShell útiles para automatizar el proceso de gestión de parches. Los parches pueden reducir el riesgo de que los errores o vulnerabilidades afecten a su sistema.

NAKIVO for Windows Backup

NAKIVO for Windows Backup

Fast backup of Windows servers and workstations to onsite, offiste and cloud. Recovery of full machines and objects in minutes for low RTOs and maximum uptime.

¿Qué es PSWindowsUpdate?

Para que el proceso de gestión de parches de Windows sea sencillo y sin complicaciones, puede utilizar el módulo PSWindowsUpdate desarrollado por Michal Gajda. Este módulo está a disposición del público y puede descargarse gratuitamente de la Galería PowerShell. El principal requisito es que el ordenador ejecute versiones del sistema operativo Windows a partir de Vista o Windows Server 2008. Además, necesita tener PowerShell 2.0 o posterior.

Con PSWindowsUpdate, puedes identificar si hay alguna actualización de Windows disponible para tu ordenador. Además, este módulo le permite gestionar de forma centralizada las actualizaciones de Windows en varios servidores y estaciones de trabajo Windows. De este modo, puede controlar a distancia qué actualizaciones se instalan, eliminan u ocultan.

Cómo automatizar las actualizaciones de Windows con PowerShell

A continuación, describiremos el proceso de configuración de PSWindowsUpdate, incluyendo cómo descargar e instalar el módulo, así como la forma de comprobar los comandos que pueden ayudarle a automatizar las actualizaciones de Windows.

Cómo instalar PSWindowsUpdate

Para automatizar eficazmente la gestión de parches de Windows, primero debe instalar el módulo PSWindowsUpdate en su ordenador. Para ello, abra un indicador PowerShell elevado e introduzca el siguiente comando:

Install-Module -Name PSWindowsUpdate

Tras ejecutar este comando, se le preguntará si desea instalar el módulo especificado desde PSGallery. Seleccione si desea continuar y aceptar todos los cambios.
Installing PSWindowsUpdate (automate Windows updates)

Una vez instalado el módulo, debes asegurarte de que puedes acceder remotamente a otros ordenadores. De este modo, podrá instalar actualizaciones de Windows en equipos remotos, lo que le permitirá dedicar el mínimo tiempo y esfuerzo. Para que el módulo PSWindowsUpdate funcione con máquinas remotas, debe guardar el módulo en su ordenador y compartirlo a través de una red.

En caso de que otros servidores puedan importar y desplegar este módulo, puede configurar la gestión automatizada de parches de Windows. Para ello, debe ejecutar el siguiente cmdlet:

Save-Module -Name PSWindowsUpdate -Path

Aquí, debe definir el parámetro -Path especificando dónde desea que se almacene el módulo PSWindowsUpdate.

Cómo utilizar PSWindowsUpdate

En el siguiente paso, aprenderá a utilizar este módulo para automatizar las actualizaciones de Windows con cmdlets de PowerShell. Esto supone una gran ventaja para los administradores de TI que necesitan realizar el proceso de gestión de parches en máquinas Server Core sin interfaz gráfica de usuario. Con el uso de estos cmdlets, puede minimizar la complejidad de la gestión y hacer que el proceso sea más fácil y menos propenso a errores.

Para obtener una lista completa de las actualizaciones de Windows disponibles, ejecute el siguiente comando de PowerShell:

Get-WindowsUpdate

Debería obtener la salida que se ve a continuación en su pantalla:

Get Windows Update (automate Windows updates)

Con esta información, sabrá con seguridad qué software o aplicación necesita actualizarse. Después de eso, puede instalar todas las actualizaciones introduciendo el siguiente comando. Además, añadiendo el parámetro -AutoReboot , puede asegurarse de que el sistema se reiniciará automáticamente una vez instalada la actualización.

Get-WUInstall -AcceptAll –AutoReboot

Si no desea que se inicie un reinicio (para no interrumpir el flujo de trabajo de producción), puede ejecutar el siguiente cmdlet:

Get-WUInstall -AcceptAll –IgnoreReboot

En la pantalla podrá ver el progreso del proceso de gestión de parches, así como la lista completa de actualizaciones y su estado actual.

Downloading updates (automate Windows updates)

Una vez finalizado el proceso de instalación, verá el siguiente mensaje en la consola PowerShell: ‘Reboot is required but do it manually’. Por lo tanto, sigue siendo necesario reiniciar el sistema, pero puede hacerlo en el momento que mejor se adapte a su horario.

Si desea descargar sólo una actualización específica, puede añadir el parámetro -KBArticleID al cmdlet de PowerShell. No olvide especificar el número de KB del artículo para descargar el parche adecuado. Por ejemplo, quiero instalar Windows Malicious Software Removal Tool x64 y Security Intelligence Update para Windows Defender Antivirus. El comando PowerShell apropiado debería aparecer como sigue:

Get-WUInstall -KBArticleID KB890830, KB2267602 –AcceptAll

Después de ejecutar este comando, sólo tendré dos de dichas actualizaciones instaladas en mi ordenador.

Visión general de los comandos PSWindowsUpdate

Si se pregunta qué cmdlet de PowerShell puede funcionar con el módulo PSWindowsUpdate, escriba el siguiente comando y pulse Intro:

. Get-Command –module PSWindowsUpdate

Aquí puede ver una lista completa de los comandos del módulo.
List of PSWindowsUpdate commands (automate Windows updates)
Veamos cómo funcionan algunos de estos comandos.

1. El cmdlet Get-WUHistory permite ver el historial de las últimas actualizaciones. Después de ejecutar este comando, recibirá una salida similar en su pantalla.

Viewing history of installed updates (automate Windows updates)

2. El siguiente cmdlet es Get-WUInstallerStatus, que puede ayudarle a verificar el estado del servicio Windows Installer. Aquí puede comprobar si el instalador funciona correctamente o no. El resultado de esta operación puede ser el siguiente:

Viewing the installer status (automate Windows updates)

3. Ejecutando el cmdlet Get-WURebootStatus, puede comprobar si necesita reiniciar el sistema para que una actualización específica se aplique completamente.

Viewing the reboot status (automate Windows updates)

4. Con el cmdlet Get-WUServiceManager, puede comprobar el origen de las actualizaciones de Windows.

Viewing the source of Windows updates (automate Windows updates)

Como puede ver, la última columna muestra la fuente de actualización (por ejemplo, Windows Update, DCat Flighting Prod, etc.).

5. Puede ocultar determinadas actualizaciones de la lista para evitar instalarlas en su ordenador. Para ello, debe ejecutar el comando Hide-WindowsUpdate, en el que es posible especificar el ID de los artículos de KB que desea ocultar. El siguiente ejemplo muestra cómo ocultar la actualización KB2267602 de la lista:

$HideList = "KB2267602"

Hide-WindowsUpdate -KBArticleID $HideList –Hide

Antes de realizar cualquier cambio, se le pedirá que confirme la selección. Escriba Y para ocultar el artículo KB.
Hiding Windows Updates (automate Windows updates)

Sin embargo, si desea obtener la lista de actualizaciones ocultas, puede ejecutar el siguiente cmdlet.

Get-WindowsUpdate -IsHidden
Hidden Windows Updates (automate Windows updates)

En la columna Estado, puede ver la letra H, que indica que la actualización se ha ocultado correctamente. Así, la próxima vez que ejecute el comando Get-WUInstall, la actualización seleccionada se excluirá automáticamente de la lista de actualizaciones disponibles.

Si desea deshacer los cambios, puede utilizar el siguiente cmdlet en la consola PowerShell:

Hide-WindowsUpdate -KBArticleID $HideList -Hide:$false

Una vez más, se le pedirá que confirme los cambios escribiendo Y.
Changing the status of Windows update (automate Windows updates)

Como puede ver, la letra H ya no aparece en el estado de la actualización, lo que significa que esta actualización de Windows ya no está oculta y puede descargarse en su ordenador.

6. Otra opción de configuración que tiene a su disposición es eliminar las actualizaciones que haya instalado en su máquina. Para ello, puede utilizar el cmdlet Remove-WindowsUpdate y escribir el ID del artículo de KB que desea desinstalar de su equipo. Por ejemplo:

Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot

Añadiendo el parámetro -IgnoreReboot, te aseguras de que el ordenador no se reiniciará automáticamente. Una vez desinstalada la actualización, puedes reiniciar la máquina más tarde.

7. Por último, puede buscar actualizaciones de Windows disponibles en un equipo remoto mediante el cmdlet Get-WUList.

Get-WUList –ComputerName Server5

Para que este cmdlet funcione, también es necesario instalar el módulo PSWindowsUpdate en un equipo remoto. De este modo, puede automatizar las actualizaciones de Windows para varios equipos desde un único panel. Con PSWindowsUpdate, el proceso de gestión de parches se realiza de forma sencilla y eficaz.

Además, puede reducir la sobrecarga de gestión que los administradores de TI pueden experimentar durante la aplicación de parches al sistema.

Conclusión

El módulo PSWindowsUpdate se desarrolló para simplificar y hacer más eficaz el proceso de gestión de parches. Automatizando la instalación de actualizaciones, puede estar seguro de que su sistema se actualiza con regularidad, minimizando así el riesgo de fallos del sistema y brechas de seguridad. Los parches se desarrollan principalmente para resolver problemas o vulnerabilidades que se descubren en un programa. Sin embargo, la gestión periódica de parches no puede garantizar la protección a gran escala de todo el entorno de producción.

Para ello, es necesario utilizar una solución integral de protección de datos que ofrezca backups y recuperación de físico a virtual y restauración del entorno. Con NAKIVO Backup & Replication, puede proteger sus datos y aplicaciones más importantes en varias plataformas, garantizar la recuperación en cualquier circunstancia y reducir los costes de protección de datos.

1 Year of Free Data Protection: NAKIVO Backup & Replication

1 Year of Free Data Protection: NAKIVO Backup & Replication

Deploy in 2 minutes and protect virtual, cloud, physical and SaaS data. Backup, replication, instant recovery options.

Artículos recomendados