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

La gestión de parches es un aspecto crucial de la administración de la infraestructura de TI, tal y como se explica en Hacer backup de una estación de trabajo de Windows. Con la solución adecuada de gestión de parches, puedes mejorar tu sistema probando o instalando las últimas actualizaciones de software y parches. Los parches se consideran soluciones temporales para problemas existentes entre versiones completas de software. Si la gestión de parches se lleva a cabo de forma eficaz, puedes abordar rápidamente las vulnerabilidades de tu 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 que el proceso de gestión de parches es demasiado complejo y requiere mucho tiempo. Además, las actualizaciones del sistema pueden afectar a su flujo de trabajo de producción, ya que a menudo se inician automáticamente durante el horario laboral. Con los cmdlets de PowerShell, puede automatizar las actualizaciones de Windows, lo que le ahorrará esfuerzo y tiempo.

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

NAKIVO para backups en Windows

NAKIVO para backups en Windows

Copia de seguridad rápida de servidores y estaciones de trabajo de Windows en las propias instalaciones, fuera de ellas y en la nube. Recuperación completa de equipos y objetos en cuestión de minutos para lograr tiempos de recuperación (RTO) reducidos y un tiempo de actividad máximo.

¿Qué es PSWindowsUpdate?

Para que el proceso de gestión de parches de Windows resulte sencillo y fluido, puedes utilizar el módulo PSWindowsUpdate desarrollado por Michal Gajda. Este módulo está disponible públicamente y se puede descargar de forma gratuita desde Galería de PowerShell. El requisito principal es que el ordenador ejecute una versión del sistema operativo Windows a partir de Vista o Windows Server 2008. Además, es necesario disponer de PowerShell 2.0 o una versión posterior.

Con PSWindowsUpdate, puedes comprobar si hay actualizaciones de Windows disponibles para tu ordenador. Además, este módulo te permite realizar la gestión centralizada de las actualizaciones de Windows en diversos servidores y estaciones de trabajo de Windows. De este modo, 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 consultar los comandos que pueden ayudarte a automatizar las actualizaciones de Windows.

Cómo instalar PSWindowsUpdate

Para automatizar de forma eficaz la gestión de parches de Windows, primero debes instalar el módulo PSWindowsUpdate en tu ordenador. Para ello, abre un símbolo del sistema de PowerShell con privilegios elevados y ejecuta 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 Yes si deseas continuar y aceptar todos los cambios.
Installing PSWindowsUpdate (automate Windows updates)

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

En caso de que otros servidores puedan importar e instalar 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ás 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 llevar a cabo el proceso de gestión de parches en equipos Server Core sin interfaz gráfica de usuario. Con el uso de estos cmdlets, puedes minimizar la complejidad de la gestión y hacer que el proceso sea más sencillo y menos propenso a errores. Para obtener una lista completa de las actualizaciones disponibles de Windows, ejecuta el siguiente comando de PowerShell:

Get-WindowsUpdate

Deberías ver en pantalla el resultado que se muestra a continuación:

Get Windows Update (automate Windows updates)

Con esta información, sabrás con certeza qué software o aplicación hay que actualizar. Después de eso, puedes instalar todas las actualizaciones introduciendo el comando que aparece a continuación. Además, al añadir el parámetro –AutoReboot , te aseguras de que el sistema se reinicie automáticamente una vez instalada la actualización.

Get-WUInstall -AcceptAll –AutoReboot

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

Get-WUInstall -AcceptAll –IgnoreReboot

En la pantalla, podrás 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)

Después de que finalice el proceso de instalación, verás el siguiente mensaje en la consola de PowerShell: «Es necesario reiniciar, pero hazlo manualmente». Por lo tanto, sigue siendo necesario reiniciar el sistema, pero puede hacerlo en el momento que mejor se adapte a su programación.

Si desea descargar solo una actualización específica, puede añadir el parámetro –KBArticleID al cmdlet de PowerShell. No olvides especificar el número del artículo de la base de conocimientos para descargar el parche correcto. Por ejemplo, quiero instalar la Herramienta de eliminación de software malicioso de Windows x64 y la Actualización de inteligencia de seguridad para Windows Defender Antivirus . El comando de PowerShell adecuado debería ser el siguiente:

Get-WUInstall -KBArticleID KB890830, KB2267602 –AcceptAll

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

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 pulsar Enter:

Get-Command –module PSWindowsUpdate

Aquí podrás 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-WUHistoryte permite ver el historial de las últimas actualizaciones. Después de ejecutar este comando, aparecerá un resultado similar en tu pantalla.

Viewing history of installed updates (automate Windows updates)

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

Viewing the installer status (automate Windows updates)

3. Al ejecutar el cmdlet Get-WURebootStatus , puedes comprobar si es necesario reiniciar el sistema para que una actualización concreta se aplique por completo.

Viewing the reboot status (automate Windows updates)

4. Con el cmdlet Get-WUServiceManager , puedes comprobar el origen de las actualizaciones de Windows. Viewing the source of Windows updates (automate Windows updates)

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

5. Puedes ocultar determinadas actualizaciones de la lista para evitar que se instalen en tu ordenador. Para ello, debes ejecutar el comando Hide-WindowsUpdate , en el que puedes especificar el ID de los artículos de la Base de Conocimientos (KB) que deseas ocultar. El siguiente ejemplo muestra cómo se puede 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 de la Base de Conocimiento.
Hiding Windows Updates (automate Windows updates)

Sin embargo, si desea obtener la lista de actualizaciones ocultas, puede ejecutar el cmdlet que se indica a continuación.

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

En la columna «Estado», podrá ver la letra H , lo que indica que la actualización se ha ocultado correctamente. De este modo, la siguiente vez que ejecute el comando Get-WUInstall , la actualización seleccionada quedará automáticamente excluida de la lista de actualizaciones disponibles.

Si desea revertir los cambios, puede utilizar el siguiente cmdlet en la consola de 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 se puede descargar en su ordenador.

6. Otra opción de configuración a tu disposición es eliminar las actualizaciones que tienes instaladas en tu equipo. Para ello, puedes utilizar el cmdlet Remove-WindowsUpdate e introducir el ID del artículo de la Base de Conocimiento (KB) que deseas desinstalar de tu ordenador. Por ejemplo:

Remove-WindowsUpdate -KBArticleID KB4519573 –IgnoreReboot

Al añadir el parámetro –IgnoreReboot , te aseguras de que el ordenador no se reinicie automáticamente. Una vez desinstalada la actualización, podrás reiniciar el equipo más tarde.

7. Por último, pero no por ello menos importante, 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 debe instalar el módulo PSWindowsUpdate en el equipo remoto. De este modo, puede automatizar las actualizaciones de Windows para varios equipos desde un único panel de control. Con PSWindowsUpdate, el proceso de gestión de parches se lleva a cabo de forma sencilla y eficiente.

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

Conclusión

El módulo PSWindowsUpdate se desarrolló para que el proceso de gestión de parches fuera más sencillo y eficiente. Al automatizar la instalación de actualizaciones, te aseguras de que tu sistema se actualice periódicamente, lo que minimiza el riesgo de fallos del sistema y brechas de seguridad. Los parches se desarrollan principalmente para resolver problemas o vulnerabilidades que se detectan en un programa. Sin embargo, la gestión habitual de parches no puede garantizar una protección completa 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 restauración del entorno para entornos físicos, virtuales y en la nube. Con NAKIVO Backup & Replication, puedes proteger tus datos y aplicaciones más críticos en múltiples plataformas, garantizar la recuperación en cualquier circunstancia y reducir los costes de protección de datos.

Prueba NAKIVO Backup & Replication

Prueba NAKIVO Backup & Replication

Solicita una versión de prueba gratuita para descubrir todas las funciones de protección de datos de la solución. 15 días gratis. Sin limitaciones de funciones ni de capacidad. No es necesario facilitar un número de tarjeta de crédito.

Artículos recomendados