Muitas empresas não atualizam seus servidores automaticamente para ter melhor controle de quando essa mudança deve ser realizada no ambiente, mas ao mesmo tempo executar essa rotina manualmente pode criar lentidão no processo e principalmente onerar um recurso técnico com um trabalho manual, monótono e suscetível a erro. Abordaremos uma maneira de um “meio termo” onde se é possível automatizar a tarefa de atualizar vários servidores simultaneamente.
Para alguns possíveis comandos que iremos exemplificar é necessário que você saiba obter o caminho DN das OUs em seu AD, caso precise de ajuda em como obter o DN leia aqui, ou nas referências abaixo. Algumas partes desse procedimentos ficaram em cinza para que você adapte de acordo com a sua realidade. Em muitos casos os símbolos de aspas simples e duplas (‘ e “) podem ficar alteradas por causa da fonte usada aqui, nesse caso altere as aspas antes de usar os comandos:
Para evitar problemas de acesso, conecte em um computador que tenha acesso a todos os computadores e com uma credencial que tenha permissão de administrar todos os computadores que você vai atualizar, a partir desse computador, faça download do PS_WinUpdate.zip e descompacte em C:\Temp, em seguida abra o powershell como administrador e execute:
Enable-PSRemoting -Force
Vamos dar vários exemplos de como usar o comando para poder criar e misturar casos, de acordo com possíveis realidades/necessidades do seu ambiente:
- Para atualizar todos os servidores que estão na OU chamada “Homologacao” do seu AD:
Invoke-Command -FilePath c:\Temp\PS_WinUpdate.ps1 -ComputerName (Get-ADComputer -Filter * -SearchBase "OU=Homologacao,DC=seudominio,DC=com" | select name).name
- Para atualizar todos os servidores que terminam com o nome “AP” e estão na OU chamada “Producao” do seu AD:
Invoke-Command -FilePath c:\Temp\PS_WinUpdate.ps1 -ComputerName (Get-ADComputer -Filter {Name -like "*AP"} -SearchBase "OU=Producao,DC=seudominio,DC=com" | select name).name
- Para atualizar todos os servidores que começam com o nome “HOM-” e terminam com o nome “AP” de todo o seu AD:
Invoke-Command -FilePath c:\Temp\PS_WinUpdate.ps1 -ComputerName (Get-ADComputer -Filter {Name -like "HOM-*AP"} | select name).name
- Para obter uma lista com todos os domain controllers, exceto os que possuem o nome “BSB” e também todos os servidores que estão na OU “teste” do AD, em seguida atualizar todos dessa lista:
$servers_unidades = Get-ADComputer -Filter * -SearchBase "OU=teste,DC=seudominio,DC=com" | select name
$ADs = Get-ADComputer -Filter {Name -notlike "*BSB*"} -SearchBase "OU=Domain Controllers,DC=seudominio,DC=com" | select name
$servers = $servers_unidades + $ADs
Invoke-Command -FilePath c:\Temp\PS_WinUpdate.ps1 -ComputerName $servers.name
- Para atualizar todos os servidores que estão em no arquivo “C:\Temp\lista.txt“:
Invoke-Command -FilePath c:\Temp\PS_WinUpdate.ps1 -ComputerName (get-content C:\Temp\lista.txt).name
Fontes/Referências
NVLAN – Como obter o Distinguished Name (DN) no Active Directory
https://gallery.technet.microsoft.com/scriptcenter/Execute-Windows-Update-fc6acb16
Mais Informações
Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.
Entre em contato conosco pelo e-mail equipe@nvlan.com.br.