Cómo automatizar las actualizaciones de Windows utilizando PowerShell: breve descripción

La administración de parches es un aspecto crucial de la administración de la infraestructura de TI, al igual que respaldo de Windows Workstation. Con la solución de administración de parches adecuada, puede mejorar su sistema probando o instalando las últimas actualizaciones de software y parches. Los parches se consideran soluciones temporales para problemas existentes entre las versiones de software a gran escala. Si la administración de parches se realiza de manera efectiva, puede abordar rápidamente las vulnerabilidades de su sistema y mitigar cualquier amenaza potencial.

Windows ofrece su propia solución de administración de parches: Windows Update. Sin embargo, muchos administradores de TI aún encuentran el proceso de administración de parches demasiado complejo y consumidor de tiempo. Además, las actualizaciones del sistema pueden afectar su flujo de trabajo de producción, ya que a menudo comienzan automáticamente durante las horas de oficina. Con los cmdlets de PowerShell, puede automatizar las actualizaciones de Windows, ahorrándole esfuerzo y tiempo.

En esta publicación de blog se describe cómo puede usar PowerShell para instalar actualizaciones de Windows e incluye una lista de comandos de PowerShell útiles para automatizar el proceso de administración de parches. La aplicación de parches puede reducir el riesgo de errores o vulnerabilidades que afecten su sistema.

¿Qué es PSWindowsUpdate?

Para que el proceso de gestión de parches de Windows sea fluido y sencillo, puedes utilizar el módulo PSWindowsUpdate desarrollado por Michal Gajda. Este módulo está públicamente disponible y se puede descargar de forma gratuita desde la PowerShell Gallery. El requisito principal es que un ordenador debe ejecutar versiones del sistema operativo Windows a partir de Vista o Windows Server 2008. Además, necesitas tener PowerShell 2.0 o posterior.

Con PSWindowsUpdate, puedes identificar si hay actualizaciones de Windows disponibles para tu ordenador. Además, este módulo te permite gestionar de forma centralizada las actualizaciones de Windows en varios servidores y estaciones de trabajo con Windows. De esta manera, puedes controlar de forma remota qué actualizaciones se instalan, se eliminan o se 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 cómo verificar los comandos que pueden ayudarte a automatizar las actualizaciones de Windows.

Cómo instalar PSWindowsUpdate

Para automatizar de forma efectiva la gestión de parches de Windows, primero necesitas instalar el módulo PSWindowsUpdate en tu ordenador. Para ello, abre un símbolo del sistema de PowerShell elevado e introduce el siguiente comando:

Install-Module -Name PSWindowsUpdate

Después de ejecutar este comando, se te preguntará si deseas instalar el módulo especificado desde PSGallery. Selecciona si deseas continuar y aceptar todos los cambios.

Una vez que hayas instalado el módulo, necesitas asegurarte de poder acceder de forma remota a otros equipos. De esta manera, deberías poder instalar actualizaciones de Windows en equipos remotos, lo que te permitirá gastar un tiempo y esfuerzo mínimos. Para que el módulo PSWindowsUpdate funcione con máquinas remotas, necesitas guardar el módulo en tu equipo y compartirlo a través de una red.

En caso de que otros servidores puedan importar e implementar este módulo, puedes configurar la gestión automatizada de parches de Windows. Para ello, debes ejecutar el siguiente cmdlet:

Save-Module -Name PSWindowsUpdate -Path

Aquí, necesitas definir el parámetro –Path especificando dónde deseas que se guarde el módulo PSWindowsUpdate.

Cómo usar PSWindowsUpdate

Para el siguiente paso, aprenderás cómo usar este módulo para automatizar las actualizaciones de Windows con cmdlets de PowerShell. Esto es una gran ventaja para los administradores de TI que necesitan realizar el proceso de gestión de parches en máquinas Server Core sin GUI. Con el uso de estos cmdlets, puedes minimizar la complejidad de la gestión y hacer el proceso más fácil y menos propenso a errores.

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

Get-WindowsUpdate

Deberías obtener la siguiente salida en tu pantalla:

Con esta información, sabrás con certeza qué software o aplicación necesita ser actualizado. Después de eso, puedes instalar todas las actualizaciones ingresando el siguiente comando. Además, al agregar el parámetro –AutoReboot, puedes asegurarte de que el sistema se reinicie automáticamente una vez que se instale la actualización.

Get-WUInstall -AcceptAll –AutoReboot

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

Get-WUInstall -AcceptAll –IgnoreReboot

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

Después de que se complete el proceso de instalación, verás el siguiente mensaje en la consola de PowerShell: ‘Reboot is required but do it manually’. Así, aún se requiere reiniciar el sistema, pero puedes hacerlo en el momento que mejor se ajuste a tu horario.

Si deseas descargar solo una actualización específica, puedes agregar el parámetro –KBArticleID al cmdlet de PowerShell. No olvides especificar el número de artículo KB para descargar el parche correcto. Por ejemplo, quiero instalar Windows Malicious Software Removal Tool x64 y Actualización de inteligencia de seguridad para Windows Defender Antivirus. El comando de PowerShell apropiado debería aparecer de la siguiente manera:

Get-WUInstall -KBArticleID KB890830, KB2267602 –AcceptAll

Después de ejecutar este comando, solo tendré dos de dichas actualizaciones instaladas en mi computadora.

Descripción general de los comandos de PSWindowsUpdate

Si te preguntas qué cmdlet de PowerShell puede funcionar con el módulo PSWindowsUpdate, debes escribir el siguiente comando y presionar Enter:

Get-Command –module PSWindowsUpdate

Aquí puedes ver una lista completa de los comandos del módulo.

Veamos cómo funcionan algunos de estos comandos.

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

2. El siguiente cmdlet es Get-WUInstallerStatus, que puede ayudarte a verificar el estado del servicio de instalador de Windows. Aquí puedes verificar si el instalador está funcionando correctamente o no. La salida de esta operación puede verse de la siguiente manera:

3. Al ejecutar el cmdlet Get-WURebootStatus, puedes verificar si necesitas reiniciar el sistema para que una actualización específica se aplique por completo.

4. Con el cmdlet Get-WUServiceManager, puedes verificar la fuente de las actualizaciones de Windows.

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

5. Puedes ocultar ciertas actualizaciones de la lista para evitar instalarlas en tu computadora. Para ello, debes ejecutar el comando Hide-WindowsUpdate donde es posible especificar el ID de los artículos KB que deseas ocultar. El siguiente ejemplo muestra cómo puedes ocultar la actualización KB2267602 de la lista:

$HideList = "KB2267602"

Hide-WindowsUpdate -KBArticleID $HideList –Hide

Antes de realizar cualquier cambio, se te pedirá que confirmes la selección. Escribe Y para ocultar el artículo KB.

Sin embargo, si deseas obtener la lista de actualizaciones ocultas, puedes ejecutar el cmdlet a continuación.

Get-WindowsUpdate –IsHidden

En la columna de Estado, puedes ver la letra H que denota que la actualización se ha ocultado con éxito. Por lo tanto, la próxima vez que ejecutes el comando Get-WUInstall, la actualización seleccionada se excluirá automáticamente de la lista de actualizaciones disponibles.

Si deseas deshacer los cambios, puedes utilizar el siguiente cmdlet en la consola de PowerShell:

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

Una vez más, se te pedirá que confirmes los cambios escribiendo Y.

Como puedes ver, la letra H ya no está incluida en el estado de la actualización, lo que significa que esta actualización de Windows ya no está oculta y se puede descargar en tu computadora.

6. Otra opción de configuración disponible para ti es eliminar las actualizaciones que has instalado en tu máquina. Para ello, puedes utilizar el cmdlet Remove-WindowsUpdate y escribir el ID del artículo KB que deseas desinstalar de tu computadora. Por ejemplo:

Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot

Al agregar el parámetro –IgnoreReboot, te aseguras de que la computadora no se reinicie automáticamente. Una vez desinstalada la actualización, puedes reiniciar la máquina más tarde.

7. Por último, pero no menos importante, puedes escanear las actualizaciones de Windows disponibles en una máquina remota utilizando el cmdlet Get-WUList.

Get-WUList –ComputerName Server5

Para que este cmdlet funcione, también necesitas instalar el módulo PSWindowsUpdate en un equipo remoto. De esta manera, puedes automatizar las actualizaciones de Windows para varias máquinas desde una única interfaz. Con PSWindowsUpdate, el proceso de gestión de parches se realiza de manera sencilla y eficiente.

Además, puedes reducir la carga de gestión que los administradores de TI pueden experimentar durante la aplicación de parches del sistema.

Conclusión

El módulo PSWindowsUpdate se desarrolló para simplificar y hacer más eficiente el proceso de gestión de parches. Al automatizar la instalación de actualizaciones, puedes asegurarte de que tu sistema esté actualizado de manera regular, 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 regular de parches no puede garantizar una 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 copias de seguridad y recuperación de sitios para entornos físicos, virtuales y en la nube. Con NAKIVO Backup & Replication, puedes asegurar tus datos y aplicaciones más críticos en varias plataformas, garantizar la recuperación en cualquier circunstancia y reducir los costos de protección de datos.

Source:
https://www.nakivo.com/blog/automate-windows-updates-using-powershell-short-overview/