Como apagar atualizações do WSUS para liberar espaço e refazer o download somente das atualizações necessárias[novo procedimento]

Versões do WSUS testadas: 3.0¹ (Windows Server 2008 R2) e 6.2.9200.22167 (Windows 2012 Standard)

Mesmo usando o Server Cleanup Wizard do WSUS, é normal que durante o tempo o WSUS passe a usar muito espaço.

Para resolver este problema é possível usar um script que declina atualizações que são desnecessárias, e depois, é possível apagar manualmente todas os downloads das atualizações acumuladas e refazer somente os downloads necessários.

Primeiramente, feche o WSUS, e pare o serviço WSUS Service:
net stop wsusservice

Execute este script .ps1 que irá declinar as atualizações desnecessárias que foram substituídas (superseded):

#Change server name and port number and $True if it is on SSL

$Computer = $env:COMPUTERNAME
[String]$updateServer1 = $Computer
[Boolean]$useSecureConnection = $False
[Int32]$portNumber = 8530
#If you are using WSUS 3.0, probably your portNumber is 80

# Load .NET assembly

[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")

$count = 0

# Connect to WSUS Server

$updateServer = [Microsoft.UpdateServices.Administration.AdminProxy]::getUpdateServer($updateServer1,$useSecureConnection,$portNumber)

write-host "<<<Connected sucessfully >>>" -foregroundcolor "yellow"

$updatescope = New-Object Microsoft.UpdateServices.Administration.UpdateScope

$u=$updateServer.GetUpdates($updatescope )

foreach ($u1 in $u )

{

if ($u1.IsSuperseded -eq 'True')

{

write-host Decline Update : $u1.Title

$u1.Decline()

$count=$count + 1

}

}

write-host Total Declined Updates: $count

trap

{

write-host "Error Occurred"

write-host "Exception Message: "

write-host $_.Exception.Message

write-host $_.Exception.StackTrace

exit

}

# EOF

No Windows Explorer, navegue para a pasta de conteúdo do WSUS (normalmente fica em C:\WSUS\WSUSContent).
Apague todas as pastas e arquivos que estão dentro da pasta WSUSContent.

Abra o CMD ou Powershell, navegue para C:\Program Files\Update Services\Tools.
Execute o comando:
WSUSUtil.exe RESET

Inicie novamente o serviço wsusservice:
net start wsusservice

Depois disto, iniciará o processo de checagem da base de dados e o download de todas as atualizações aprovadas, e o processo pode demorar várias horas para terminar.

¹Precisei instalar o Powershell 4.0 para poder usar o script.

Fontes e maiores informações:


Comentários

  1. NESTE PROCEDIMENTO ELE VAI BAIXAR AS ATUALIZAÇÕES PROVADAS NO PASSA OU SEJA, ESTOU O PARQUE ATUALIZADO, SÓ PRECISO NAS NOVAS PARA FRENTE VAI SER DESTA FORMA,OU VAI BAIXAR TODAS QUE JÁ TINHA ANTES?

    ResponderExcluir
  2. Ele Vai baixar todas anteriores, menos as declinadas. Se você estiver com um novo parque de máquinas e não tiver mais necessidade de atualizações para máquinas mais antigas, Recomendo que desaprove todas as atualizações já permitidas e, ao colocar as novas máquinas no Wsus, aprove somente as necessárias.

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Lava-louças Brastemp BLE20 - RESOLVIDO - Piscando luzes Iniciar e enxaguar/Erro ao jogar água fora

Como detectar se a versão do Windows é 32 bits ou 64 bits a partir de um script do Powershell (.ps1)