Imagen: rvolkan/Getty Images

La administración de actualizaciones de Windows es la piedra angular de cualquier administrador de sistemas encargado de administrar computadoras con Windows. Seguramente todos los profesionales de TI están íntimamente familiarizados con "Patch Tuesday", o la ventana predeterminada de Microsoft cuando lanza las últimas actualizaciones para todas sus aplicaciones de software, haciéndolas disponibles en sus servidores de catálogo que alimentan dispositivos individuales con los metadatos necesarios para localizar y descargar el últimas actualizaciones. fijado.

VER: Trucos para el menú de inicio de Windows 10 (Premium de TechRepublic)

Si bien no es una tarea desalentadora en sí misma, la actualización de las aplicaciones de Microsoft se vuelve cada vez más difícil y requiere más tiempo a medida que aumenta la cantidad de dispositivos. Entre una combinación de la cantidad de parches disponibles, actualizaciones perdidas o dañadas anteriormente que pueden actuar como dependencias para actualizaciones más nuevas, consideraciones de ancho de banda y quién usa los dispositivos para hacer su trabajo, la tarea puede abrumar fácilmente incluso a los profesionales de TI más experimentados. .

Afortunadamente, como ocurre con la mayoría de las cosas de Microsoft, hay varias formas de realizar una tarea, y la administración de parches se puede aprovechar contra repositorios, suites de administración de terceros y mi PowerShell (PS) favorito. Digo preferido porque es flexible, potente y nativo de todas las versiones de Windows durante varias generaciones. También es fácil crear secuencias de comandos una vez que haya establecido la configuración correcta, y es muy seguro. Y dado que no hay dependencia de software o servidores adicionales que pueden ser costosos o cuyo uso está prohibido, la solución es en gran medida gratuita para cualquier organización.

Explicaré los pasos para configurar su infraestructura para usar PowerShell a fin de lograr la administración de parches, e incluso automatizarla para que se adapte a las necesidades de su organización. Pero primero, revise los requisitos a continuación para asegurarse de que todo salga bien:

Requerimientos mínimos:

  • Estación de trabajo con Windows 10, macOS o Linux para tareas administrativas
  • PowerShell v5.0 (o posterior) en Windows; PowerShell v7.0 en macOS/Linux
  • Computadoras cliente de Windows con Windows 7/Server 2008 (o posterior) instalado
  • red de acceso telefónico
  • Acceso a Internet
  • Uso compartido de servidor basado en SMB (opcional, pero recomendado para hacer referencia a scripts y módulos)
Índice
  • Cómo verificar su versión de PowerShell
  • Instale el módulo de actualización de PSWindows
  • Servicio de actualización de Microsoft y Servicio de actualización de Windows (solo Windows)
  • Implementación de actualizaciones en equipos locales
  • Implementación de actualizaciones en equipos remotos
  • Instalación de actualizaciones específicas solamente
  • Evite la instalación de actualizaciones específicas ocultándolas
  • Para los mejores resultados
  • Cómo verificar su versión de PowerShell

    Inicie PowerShell e ingrese el siguiente comando para verificar la versión de PS instalada:

    $PSVersionTable.PSVersion

    Mostrará una tabla con las versiones mayor y menor, siendo la mayor la que identifica el número de versión.

    VER: Hoja de referencia: Windows 10 PowerToys (PDF gratuito) (República Tecnológica)

    Instale el módulo de actualización de PSWindows

    1. Antes de que se puedan implementar las actualizaciones en los dispositivos, primero se debe instalar el módulo que notifica a PS sobre los cmdlets disponibles en cada computadora con Windows (consulte la sección a continuación para la implementación masiva). Introduzca 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 para familiarizarse con todos los cmdlets disponibles para este módulo:

    Get-Command -module PSWindowsUpdate 

    Servicio de actualización de Microsoft y Servicio de actualización de Windows (solo Windows)

    De forma predeterminada, el módulo solo buscará y proporcionará actualizaciones de Windows. Sin embargo, si admite otras aplicaciones de Microsoft que también desea actualizar, es posible que debamos registrar el servicio Microsoft Update para obtener la capacidad de entregar esas actualizaciones. Para hacer esto, ingrese el cmdlet a continuación:

    Add-WUServiceManager -MicrosoftUpdate 

    El cmdlet anterior solo es compatible con sistemas Windows, ya que macOS ni Linux usan Microsoft Update Services para sus repositorios de actualización.

    Implementación de actualizaciones en equipos locales

    Cuando ejecute el proceso de actualización en una computadora local, ingrese el siguiente cmdlet:

    Install-WindowsUpdate -MicrosoftUpdate -AcceptAll -AutoReboot 

    Esto verificará si faltan actualizaciones para los productos de Microsoft instalados en la computadora local con los servicios de Microsoft Update, los instalará de forma silenciosa, aceptará todos los acuerdos de licencia y reiniciará automáticamente el sistema cuando se complete.

    Si desea crear una entrada de registro para cada dispositivo para investigar los problemas que pueden surgir con el proceso de actualización, debe crear una carpeta compartida en un servidor para centralizar la administración de registros. Una vez creado con permisos de lectura/escritura en el directorio, agregue la siguiente línea al cmdlet de actualización anterior para forzar las entradas de registro de escritura en la carpeta compartida para su revisión.

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

    Notar: Observe la distinción entre mayúsculas y minúsculas del formato de fecha. Si es incorrecto, la fecha no se marcará correctamente en el nombre del archivo.

    Implementación de actualizaciones en equipos remotos

    1. Cree una variable con los nombres de las computadoras que desea actualizar. A los efectos de este ejemplo, llamaremos a la variable $Nodes. Escriba el siguiente comando para establecer la variable:

    $Nodes = "computername01,computername02,etc" 

    2. A continuación, ingresaremos al cmdlet que importará el módulo PSWindowsUpdate en el sistema remoto, luego llamaremos a Microsoft Update para descargar e instalar las actualizaciones faltantes. La actualización se ejecutará inmediatamente una vez que se ejecute el cmdlet, exportando la salida al archivo de registro a un servidor compartido con el nombre de host y la marca de tiempo, luego reiniciando las estaciones al finalizar:

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

    Instalación de actualizaciones específicas solamente

    Si desea seleccionar actualizaciones específicas solo para la instalación, PS ofrece la opción de hacerlo por artículo de KB, utilizando el siguiente cmdlet:

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

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

    Puede haber ocasiones en las que desee excluir actualizaciones de la lista de instalación. Microsoft ha incluido varias configuraciones que manejan estas excepciones en función de los nombres e ID de actualización individuales, los artículos de la base de conocimientos y las categorías de actualización.

    Al igual que con la instalación de actualizaciones específicas por artículo de la base de conocimiento anterior, puede usar el siguiente comando para evitar la instalación de todas las actualizaciones correspondientes a los artículos de la base de conocimiento a los que se hace referencia:

    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 incluyen "Teams" en el título:

    Install-WindowsUpdate -NotTitle "Teams" -AcceptAll 

    Finalmente, si desea omitir las actualizaciones que pertenecen a una categoría en particular, por ejemplo, controladores o FeaturePacks, el siguiente comando bloqueará esas actualizaciones mientras se instalan todas las demás:

    Install-WindowsUpdate -NotCategory "Drivers","FeaturePacks" -AcceptAll 

    Notar: Es importante tener en cuenta que al crear el entorno de secuencias de comandos perfecto para sus métodos de actualización, no solo incluya sus preferencias, sino que tómese el tiempo para probarlas individualmente y luego juntas nuevamente como una secuencia de comandos global para asegurarse de que todo funciona correctamente.

    Para los mejores resultados

    • Asegúrese de que su infraestructura cumpla con los requisitos y las versiones mínimas de PowerShell.
    • Importe el módulo a sus dispositivos y regístrese en Microsoft Update Services.
    • Cree listas para ocultar actualizaciones no autorizadas/no probadas.
    • Implemente solo actualizaciones administradas y aprobadas previamente en todos los dispositivos.
    • Almacene cmdlets e inicie sesión en recursos compartidos para automatizar las secuencias de comandos de las actualizaciones implementadas.