Configurar o Windows Update no Windows Server 2016

3

Problema

Habilitar o Windows Update para baixar e agendar automaticamente a instalação. Programe para executar em um determinado dia (sábado).

Solução Tentei

Escreva um script powershell usando o módulo gpmc / grouppolicy para alterar as configurações do Windows Update.

O estado final que estou procurando é:

gpedit.msc - > Administrative Templates/Windows Components/Windows Update

Configurar a atualização automática - >

Enabled

Auto download and schedule the install (4)

Every Saturday (7)

Problemas enfrentados

Não encontrando nenhuma documentação para fazer isso no Windows Server 2016 usando o powershell.

Notas:

  • A máquina não faz parte do AD.
  • Estou tentando alterar a política local.
por M4ver1k 14.03.2018 / 12:48

1 resposta

3

Infelizmente, o Get-GPO cmdlet só pode obter GPOs de um domínio; não parece haver nenhum equivalente gerenciado do método COM IGroupPolicyObject::OpenLocalMachineGPO . Existem outras maneiras de definir isso, no entanto. Supondo que a Política de Grupo existente já não especifique essa configuração de política, ajustar o Registro diretamente deve funcionar bem:

$hklm = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine', 'Default')
$wu = $hklm.CreateSubKey('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU')
$wu.SetValue('NoAutoUpdate', 0, 'DWord')
$wu.SetValue('AUOptions', 4, 'DWord')
$wu.SetValue('ScheduledInstallDay', 7, 'DWord')
$wu.SetValue('ScheduledInstallTime', 0, 'DWord')
$wu.Dispose()
$hklm.Dispose()

Isso não afetará o que você vê no Editor de Diretiva de Grupo Local, mas será visto pela infraestrutura do Windows Update. Como você não informou a hora do dia em que as atualizações devem ser instaladas, configurei para meia-noite. Você pode alterar isso alterando o valor ScheduledInstallTime .

Para determinar quais configurações do Registro correspondem a uma determinada política, você pode usar a ferramenta Inspetor de Elementos no meu aplicativo de código aberto Política Plus . Falando de Policy Plus, você também pode carregá-lo como um assembly do PowerShell para editar o GPO local. Primeiro, faça o download faça o download e use a guia Propriedades no Explorer para "desbloqueá-lo"; isso permite que o .NET carregue em outro processo. Em seguida, coloque-o no mesmo diretório desse script:

[System.Reflection.Assembly]::LoadFile((gi '.\Policy Plus.exe').FullName) | Out-Null
$loader = [PolicyPlus.PolicyLoader]::new('LocalGpo', '', $false)
$pol = $loader.OpenSource()
$pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'NoAutoUpdate', 0, 'DWord')
$pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'AUOptions', 4, 'DWord')
$pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'ScheduledInstallDay', 7, 'DWord')
$pol.SetValue('SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU', 'ScheduledInstallTime', 0, 'DWord')
$loader.Save()
$loader.Close()

Isso tira proveito de PolicyLoader e PolFile classes. Quando o script for concluído, você deverá ver esta saída (devido às duas últimas chamadas):

saved to disk and invoked policy refresh
True

Dessa forma, as alterações serão visíveis no Editor de Diretiva de Grupo Local e a infraestrutura normal da Diretiva de Grupo as aplicará ao Registro.

    
por 18.03.2018 / 20:42