Windows Server Update Services (WSUS) es un sistema centralizado de aplicación de parches y actualizaciones diseñado por Microsoft.

Requisitos de WSUS

  • Espacio en disco duro de mínimo 10 GB.
  • Adaptador de red de mínimo 100 Mbps.
  • En cuanto a memoria lo recomendado es tener 2 GB más de las requeridas por el servidor.
  • Procesador x64 de 1.4 Ghz o mayor.
  • Disco duro adicional, no es recomendable descargar las actualizaciones o bases, directamente en el disco del Sistema Operativo, pues si este se llenara la máquina no funcionaría y el sistema se vendría abajo.

Tipos de despliegue de WSUS

WSUS se puede instalar desde la propia Interfaz Gráfica por medio de la instalación del rol, o desde el propio Windows Powershell.

WSUS no tiene ningún tipo de jerarquía, solo se diferencian servidores UpStream, y DownStream.

UpStream: Se conectan directamente a Microsoft Update, necesitan tener conexión a Internet.

DownStream: Se conectan a un servidor UpStream, no necesitan tener conexión a Internet.

¿Por qué instalar WSUS mediante Powershell?

La instalación de WSUS mediante Powershell agiliza bastante la tarea, al instalar prerequisitos, postinstalaciones y descargas de datos de forma automática. A la hora de aprobar nuevos parches se hace de forma eficiente.

Una vez programado, podemos permitir a los  usuarios  bajo política de seguridad instalar las actualizaciones bajo demanda.

Creo que es una buena forma de aplicar actualizaciones y parches, ya que así se evita que se produzca cuellos de botella en la red, en los días que se lanzan las actualizaciones por parte de Microsoft, y así podemos llegar a controlar, cuales se instalan en los equipos y cuales no.

Descripción del vídeo

Utilizamos un entorno de dos máquinas virtuales, el DC01 con interfaz gráfica, donde implementamos el dominio de adatum.com, y WSUS01 que está dentro del dominio de adatum.com y en el cual desplegamos todo lo necesario para que WSUS funcione.

Realizamos todas las tareas referentes a WSUS empleando comandos nativos de Powershell, aunque luego estos pueden ser utilizados para crear un script para desplegar por medio de Powershell DCS.

Para la gran mayoría de funciones implementadas en WSUS, es necesario la creación de variables y sacar la función con el parámetro (.)nombredefunción.

Intentamos reproducir el laboratorio lo más parecido al entorno real, por lo que nos conectamos a DC01 por medio de escritorio remoto, y administramos el WSUS de forma remota desde Powershell (Enter-PSSession).

Comandos Utilizados en el vídeo

#Primero nos conectamos al equipo Core donde vamos a instalar el WSUS

Enter-PSSession -ComputerName WSUS01

#Miramos que características tenemos que instalar

Get-WindowsFeature UpdateServices*

#Instalamos todos menos SQL

Install-WindowsFeature UpdateServices,UpdateServices-WidDB,UpdateServices-Services

#Comprobamos que se han instalado todo

Get-WindowsFeature UpdateServices*

#Inicializamos el disco y preparamos apra recibir los datos de las actualizaciones.

Get-Disk

Initialize-Disk -Number 1 -PartitionStyle MBR

New-Partition -DiskNumber 1 -UseMaximumSize

Get-Partition -PartitionNumber 1 | Format-Volume -FileSystem NTFS -NewFileSystemLabel “Data” -Confirm: $false

Set-Partition -DiskNumber 1 -NewDriveLetter E

#Llevamos  a cabo la postinstalacion y le indicamos la ruta donde guardar las descargas

cd ‘C:\Program Files\Update Services\Tools’

WsusUtil.exe  postinstall /?

wsusutil.exe postinstall CONTENT_DIR=E:\WSUS

#Creamos las variables necesarias para configurar el WSUS

$wsus=Get-WsusServer #Ya que solo tenemos un servidor WSUS

$wsusconfig=$wsus.GetConfiguration() #Guardamos la configuración en una variable

#Configuramos el servidor como Upstream.

Set-WsusServerSynchronization -SyncFromMU

#Indicamos que solo queremos descargar actualizaciones y parches en inglés

$wsusconfig.AllUpdateLanguagesDssEnabled =$false #Le indicamos que no queremos las actualizaciones de todos los idiomas

$wsusconfig.SetEnabledUpdateLanguages(“en”) #Solamente nos interesan las actualizaciones en ingles

$wsusconfig.Save()

#Descargamos las bases de actualizaciones y parches

$subscription=$wsus.GetSubscription()

$subscription.StartSynchronizationForCategoryOnly()

While ($subscription.GetSynchronizationStatus() -ne ‘NotProcessing’){

    Write-Host “.” -NoNewline

    Start-Sleep -Seconds 20

}

Write-Host  “Sync is done”

#Seleccionamos los productos de los que queremos descargar actualizaciones y parches

Get-WsusProduct | Where-Object{

    $_.Product.Title -in(

      ‘Windows Server 2016’,

      ‘Windows 10’

      )

    }|Set-WsusProduct

#Clasificacion de actualizaciones que vamos a instalar. En nuestro caso solo Security y Critical.

Get-WsusClassification | Where-Object {

    $_.Classification.Title -in (

        #’Update Rollups’,

        ‘Security Updates’,

        ‘Critical Updates’

        #’Service Packs’,

        #’Updates’

    )

    } | Set-WsusClassification

#Vamos a programar la sincronizacion, para decirle cuando se va a ejecutar

$subscription.SynchronizeAutomatically=$true

$subscription.SynchronizeAutomaticallyTimeOfDay=(New-TimeSpan -Hours 0)

$subscription.NumberOfSynchronizationsPerDay=1

$subscription.Save()

$subscription.StartSynchronization()

#Aprobamos las actualizaciones y parches descargados

Get-WsusUpdate -Classification All -Approval Unapproved -Status FailedOrNeeded | Approve-WsusUpdate -Action -TargetGroupName “Unassigned Computers”

#Ver si tenemos equipos registrados en el WSUS

Get-WsusComputer

Fuentes:

Autor/a: Víctor Jesús Rodilla Marín

Curso: Microsoft MCSA Windows Server + Microsoft MCSE Cloud Platform & Infrastructure

Centro: Tajamar

Año académico: 2017-2018

Linkedin: https://www.linkedin.com/in/victorrodilla/