Finally the help of IT is here

Blog de soluciones informaticas.

Como listar parches aprobados y necesarios en equipos de WSUS en Powershell

Posteado por Xavier Xaus Nadal on 21st octubre 2010

Buenas,

Ayer en el artículo Script Powershell para sacar listado por HTML de los parches en WSUS os mostré un script que nos hace un listado de todos los parches needed por equipos y hoy os muestro una pequeña modificación realizada por Albert Fortes en el código que consigue sacar este mismo listado pero de los parches aprobados.

Es decir, es un listado de los parches approved needed.

Con esto conseguimos ver los parches que faltan en los equipos y que previamente hemos aprobado para su distribución desde wsus.

[reflection.assembly]::LoadWithPartialName(“Microsoft.UpdateServices.Administration”)

 

$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer(“localhost”,$false);

$Computers = $wsus.GetComputerTargets()

$ruta=\\<servidor_donde_guardar_el_report>

$computername=gc env:computername

$FileOutput=get-date -uformat “ReportWsus_%d_%m_%Y_$computername.html”

 

$Report=@()

 

$total=$Computers.Count

 

$i=0

 

clear host

 

foreach( $computer in $Computers)

      $updateScope = new-object Microsoft.UpdateServices.Administration.UpdateScope;

      $updateScope.UpdateApprovalActions = [Microsoft.UpdateServices.Administration.UpdateApprovalActions]::Install `

      -bor [Microsoft.UpdateServices.Administration.UpdateApprovalActions]::Uninstall

 

      $UpdateSummary=${computer}.GetUpdateInstallationSummary($updateScope)

 

      $Count=$UpdateSummary.NotInstalledCount + $UpdateSummary.DownloadedCount + $UpdateSummary.FailedCount

      $Report_element = new-object psobject

      $Report_element | add-member NoteProperty “Computer” ${computer}.FullDomainName

      $Report_element | add-member NoteProperty “NeededUpdates” $Count

      $Report_element | add-member NoteProperty “LastUpdateSync” ${computer}.LastSyncTime.ToString()

      $Report+=$Report_element

      $i=$i+1

      $Percent=($i/$total*100)

 

      Write-Progress -Activity “WSUS query…” `

      -Status “Espera un poco mas.” -CurrentOperation (“Complete $i/$total” ) -PercentComplete ($i/$total*100)

}

 

Clear host

 

$Report | sort NeededUpdates | ConvertTo-Html | Out-File -FilePath “$ruta$FileOutput”

Si tenéis cualquier duda por favor haced un comentario y os lo solventaré encantado.

Hasta pronto MegaCracks.

Tags: , , , , , , , , , ,
Posteado por PowerShell, Windows Update Services | 1 Comment »