Cómo administrar las actualizaciones de Windows con PowerShell

Administrar las actualizaciones de Windows es fundamental para cualquier administrador de sistemas encargado de gestionar equipos con Windows. Cualquier profesional de TI seguramente estará familiarizado con el "Martes de actualizaciones", o el día que Microsoft lanza las últimas actualizaciones para todas sus aplicaciones de software, poniéndolas a disposición en sus servidores de catálogo que suministran a los dispositivos individuales los metadatos necesarios para localizar y descargar las correcciones más recientes.

Aunque no es una tarea intimidante en sí misma, mantener actualizadas las aplicaciones de Microsoft se vuelve cada vez más difícil y consume mucho tiempo a medida que aumenta el número de dispositivos. Entre la combinación de la cantidad de parches disponibles, actualizaciones anteriores omitidas o dañadas que pueden actuar como dependencias para actualizaciones más nuevas, consideraciones de ancho de banda y aquellos que utilizan los dispositivos para realizar su trabajo, la tarea puede abrumar incluso al profesional de TI más experimentado.

Afortunadamente, como sucede con la mayoría de las cosas de Microsoft, existen varias formas de completar una tarea, y la administración de parches puede aprovechar los repositorios, los programas de gestión de terceros y mi favorito personal, PowerShell (PS). Lo digo porque es flexible, potente y nativo de todas las versiones de Windows desde hace varias generaciones. También se puede escribir fácilmente en forma de script una vez que se colocan los parámetros correctos, y es altamente seguro. Y dado que no depende de software adicional ni de servidores que pueden ser costosos o prohibidos de usar, la solución es en gran medida gratuita para cualquier organización.

A continuación, describiré los pasos para configurar su infraestructura y utilizar PowerShell para administrar las actualizaciones, incluso automatizándolo según las necesidades de su organización. Pero primero, revise los requisitos a continuación para asegurarse de que todo funcione sin problemas:

Requisitos mínimos:

Cómo personalizar el fondo en Microsoft Teams con tus propias imágenes
  • Estación de trabajo con Windows 10, macOS o Linux para tareas administrativas
  • PowerShell v5.0 (o más reciente) en Windows; PowerShell v7.0 en macOS/Linux
  • Computadoras cliente con Windows 7/Server 2008 (o más reciente) instalado
  • Red conmutada
  • Acceso a Internet
  • Compartir servidor basado en SMB (opcional; pero recomendado para hacer referencia a scripts y módulos)
Índice de Contenido
  1. Cómo verificar la versión de PowerShell
  2. Instalar el módulo PSWindowsUpdate
  3. Servicio de actualización de Microsoft vs. Servicio de actualización de Windows (solo en Windows)
  4. Implementación de actualizaciones en equipos locales
  5. Implementación de actualizaciones en equipos remotos
  6. Instalación solo de actualizaciones específicas
  7. Evitar la instalación de actualizaciones específicas ocultándolas
  8. Para obtener los mejores resultados

Cómo verificar la versión de PowerShell

Cómo administrar las actualizaciones de Windows con PowerShell - Software | Imagen 1 Newsmatic

Inicie PowerShell y escriba el siguiente comando para verificar la versión de PS instalada:

$PSVersionTable.PSVersion

Esto mostrará una tabla con las versiones principales y menores, siendo la principal la que identifica el número de versión.

Instalar el módulo PSWindowsUpdate

1. Antes de que las actualizaciones puedan enviarse a los dispositivos, primero se debe instalar el módulo que informa a PS de los cmdlets disponibles en cada equipo con Windows (consulte la sección a continuación para implementar esto en masa). Escriba el siguiente comando para instalar el módulo:

Install-Module PSWindowsUpdate

2. Una vez instalado, puede escribir el siguiente cmdlet para imprimir una lista en la pantalla y familiarizarse con todos los cmdlets disponibles en este módulo:

Get-Command -module PSWindowsUpdate

Servicio de actualización de Microsoft vs. Servicio de actualización de Windows (solo en Windows)

Por defecto, el módulo solo buscará y entregará actualizaciones de Windows. Sin embargo, si también admite otras aplicaciones de Microsoft que desea actualizar, deberemos registrar opcionalmente el Servicio de Actualización de Microsoft para obtener la capacidad de proporcionar esas actualizaciones. Para hacerlo, ingrese el siguiente cmdlet:

Cómo aplicar alineación izquierda y derecha en un mismo párrafo en Word
Add-WUServiceManager -MicrosoftUpdate

El cmdlet anterior solo es compatible con sistemas basados en Windows, ya que macOS ni Linux utilizan los Servicios de Actualización de Microsoft para sus repositorios de actualización.

Implementación de actualizaciones en equipos locales

Al realizar el proceso de actualización en un equipo local, escriba el siguiente cmdlet:

Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot

Esto buscará las actualizaciones que faltan para los productos de Microsoft instalados en el equipo local en los Servicios de Actualización de Microsoft, las instalará silenciosamente, aceptará cualquier acuerdo de licencia y reiniciará el sistema automáticamente cuando haya terminado.

Si desea crear una entrada de registro para cada dispositivo y examinar cualquier problema que pueda surgir durante el proceso de actualización, debe crear una carpeta compartida en un servidor para centralizar la gestión de registros. Una vez creada con los permisos de lectura/escritura necesarios en el directorio, agregue la siguiente línea al cmdlet de actualización anterior para que se escriban las entradas de registro en la carpeta compartida para su revisión.

| Out-File "\\servidor\compartido\log$($env.computername-Get-Date -f yyyy-MM-dd)-MSUpdates.log" -Force

Nota: Preste atención a la sensibilidad a las mayúsculas y minúsculas en el formato de fecha. Si es incorrecto, la fecha no se registrarán en el nombre del archivo correctamente.

Implementación de actualizaciones en equipos remotos

1. Cree una variable con los nombres de los equipos que desea actualizar. Para este ejemplo, llamaremos a la variable $Nodos. Escriba el siguiente comando para configurar la variable:

Google lanza la colaboración segura con cualquier dirección de correo electrónico
$Nodos = "nombredeequipo01,nombredeequipo02,etc"

2. A continuación, escribiremos el cmdlet que importará el módulo PSWindowsUpdate en el sistema remoto, luego llamará a la Actualización de Microsoft para descargar e instalar las actualizaciones que faltan. La actualización se ejecutará inmediatamente una vez que se ejecute el cmdlet, exportando la salida al archivo de registro en una carpeta compartida con el nombre de host y la hora, y reiniciando finalmente las estaciones al completar el proceso:

Invoke-WUJob -ComputerName $Nodos -Script {ipmo PSWindowsUpdate; Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot} -RunNow -Confirm:$false | Out-File "\\servidor\compartido\logs\$Nodos-$(Get-Date -f yyyy-MM-dd)-MSUpdates.log" -Force

Instalación solo de actualizaciones específicas

Si desea seleccionar y elegir las actualizaciones específicas que desea instalar, PS ofrece la flexibilidad de hacerlo mediante el número de artículo de conocimiento (KB). Use el siguiente cmdlet:

Get-WindowsUpdate -KBArticleID "KB1111111","KB2222222","etc" -Install

Evitar la instalación de actualizaciones específicas ocultándolas

Puede haber momentos en los que desee excluir ciertas actualizaciones de la lista de instalación. Microsoft ha incluido varios parámetros que abordan estas excepciones según los nombres e ID de actualización individuales, los artículos de KB y las categorías de actualizaciones.

Similar a la instalación de actualizaciones específicas por número de artículo de KB mencionada anteriormente, puede usar el siguiente comando para evitar la instalación de cualquier actualización que coincida con los números de artículo de KB referenciados:

Install-WindowsUpdate -NotKBArticle "KB1111111","etc" -AcceptAll

Tal vez prefiera no actualizar aplicaciones específicas, como Teams. El siguiente comando instalará actualizaciones para todas las aplicaciones, excepto aquellas que incluyan "Teams" en el título:

Install-WindowsUpdate -NotTitle "Teams" -AcceptAll

Finalmente, si desea omitir las actualizaciones que pertenecen a una categoría específica, por ejemplo, controladores o paquetes de características, el siguiente comando bloqueará estas actualizaciones mientras se instalan todas las demás:

Windows 10: Novedades y mejoras en la actualización de octubre de 2020
Install-WindowsUpdate -NotCategory "Drivers","FeaturePacks" -AcceptAll

Nota: Es importante tener en cuenta que al crear el entorno de scripting perfecto para sus métodos de actualización, incluya no solo sus preferencias, sino también tómese el tiempo para probarlos individualmente y luego juntos como un solo script abarcador para asegurarse de que todo funcione correctamente.

Para obtener los mejores resultados

  • Asegúrese de que su infraestructura cumpla con los requisitos y las versiones mínimas de PowerShell.
  • Importe el módulo en sus dispositivos y regístrelo en los Servicios de Actualización de Microsoft.
  • Cree listas para ocultar actualizaciones no autorizadas o no probadas.
  • Implemente solo actualizaciones administradas y preaprobadas en todos los dispositivos.
  • Guarde cmdlets y registros en compartidos para automatizar la creación de scripts de actualización implementados.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Software, allí encontraras muchos artículos similares a Cómo administrar las actualizaciones de Windows con PowerShell , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.