Script de atualizações do WSUS em um servidor definido como "detectar apenas"

1

Eu gostaria de instalar automaticamente as atualizações do servidor Windows (com suporte do WSUS), mas parece que não consigo obter wuauclt /updatenow para realmente iniciar uma instalação (ou qualquer um dos outros switches não documentados).

Funciona em uma estação de trabalho de teste, mas acredito que seja porque a instalação está definida como Automático todos os dias enquanto o servidor está definido como Somente detecção. Estou planejando usar outro agendador de terceiros mais robusto para instalar atualizações em determinados dias da semana, mas também semanas do mês. Ou seja, o Servidor A é instalado no primeiro domingo do mês, Servidor B, no segundo domingo do mês, etc.

Basicamente, estou procurando um equivalente em script para clicar no botão "Instalar Atualizações" na caixa de diálogo da GUI do Windows Update no servidor.

    
por gravyface 16.11.2012 / 00:06

3 respostas

2

Parece que você pode fazer isso com uma API COM (assim você pode usar qualquer linguagem de script que possa usar COM-- VBScript, PowerShell, etc).

O snippet do VBScript abaixo irá procurar por atualizações pendentes, baixá-las e instalá-las silenciosamente.

Option Explicit

Dim objUpdateSess
Dim objUpdateSearcher
Dim objDownloader
Dim objInstaller
Dim objSearchResult

Set objUpdateSess = CreateObject("Microsoft.Update.Session")

Set objUpdateSearcher = objUpdateSess.CreateUpdateSearcher()

Set objDownloader = objUpdateSess.CreateUpdateDownloader()

Set objInstaller = objUpdateSess.CreateUpdateInstaller()

' Search for pending updates
Set objSearchResult = objUpdateSearcher.Search("IsAssigned=1 and IsHidden=0 and IsInstalled=0 and Type='Software'")

' Download the pending updates
objDownloader.Updates = objSearchResult.Updates
objDownloader.Download()

' Install the pending updates
objInstaller.AllowSourcePrompts = False
objInstaller.ForceQuiet = True
objInstaller.Updates = objDownloader.Updates
ObjInstaller.Install()

Este script tem absolutamente zero verificação de erros, então não use realmente! Há uma série de pequenos scripts que as pessoas escreveram para automatizar esse processo em toda a rede (alguns que enviam e-mails, reinicializam automaticamente após a conclusão, etc.). Faça algumas pesquisas e veja o que você inventa ou faz o seu.

    
por 16.11.2012 / 03:14
2

A Microsoft tem um ótimo exemplo de vbscript para instalar atualizações através do Windows Update em link

Há alguns ajustes que eu faria para o seu uso, como aceitar automaticamente todos os EULAs e não parar para fazer perguntas.

    
por 16.11.2012 / 03:16
0

Editar a Diretiva de Grupo Local é a coisa mais próxima que posso pensar em fazer o que você pode precisar.

  1. Pressione a tecla do Windows + R
  2. Digite gpedit.msc
  3. Navegue até: Configuração do computador - > Componentes do Windows - > Windows Update
  4. Debaixo de você pode editar todas as configurações mas o que você pode estar interessado em mais é "Configurar Atualizações Automáticas", esta política o deixará selecionar um dia e tempo para executar atualizações de Windows.

Se o sistema fizer parte de um domínio, você também poderá fazer isso com uma política de grupo.

    
por 16.11.2012 / 01:46