Com o objetivo de colocá-lo em mais caixas de produção, estou testando o comportamento de atualização do Windows 2016. Corri sconfig
para selecionar "DownloadOnly" em "Windows Update Setting" e configurei "Active Hours" das 07:00 às 19:00.
É meu entendimento que esta configuração deve funcionar como abaixo:
- as atualizações são baixadas automaticamente;
- as atualizações não são instaladas automaticamente; em vez disso, um administrador de sistema tinha que confirmar manualmente a instalação das atualizações;
- se o servidor precisar ser reinicializado, uma reinicialização agendada fora do horário ativo deverá ser configurada automaticamente;
- fora do horário comercial (ou seja: depois das 19:00 - 07:00) o servidor deve reiniciar.
Pergunta principal: o entendimento acima está correto?
Estou perguntando porque ao testar em um controlador de domínio do Windows 2016 e instalar manualmente as atualizações, mesmo que um aviso mostre "seu dispositivo está programado para reiniciar fora do horário ativo (o horário ativo é das 07:00 às 19:00)", a reinicialização nunca ocorre.
Percebi que no Gerenciador de Tarefas\Biblioteca\Windows\Windows Update, uma inicialização de Tarefa de Reinicialização musnotification.exe RebootDialog
foi criada para ser executada às 19:20 e é executada a cada 30/60 minutos.
Segunda pergunta: como o Windows 2016 se comporta, por padrão, quando há usuários de área de trabalho remota registrados? Ele notifica? Ele reinicia? E se a sessão estiver no estado desconectado?
Nota: eu conheço a política No auto-restart with logged on users for scheduled automatic updates installations
, no entanto:
- Não está ativo/configurado;
- Como não estou instalando atualizações automaticamente, isso não deve ter efeito:
Essa política se aplica somente quando a política Configurar atualizações automáticas está configurada para realizar instalações agendadas de atualizações.
Concedido, eu entendo perfeitamente que um servidor deve ser corrigido e reiniciado apenas no momento apropriado. No entanto, eu realmente gostaria de entender a lógica por trás do comportamento de atualização atual (Win2016). Eu sinto fortemente que estou perdendo alguma coisa, pois esta deve ser uma tarefa de manutenção básica.
Eu li essas informações , mas eu realmente gostaria de ouvir alguma experiência em primeira mão com o sysadmin do Windows.
Bem, depois de mais de um ano e alguma instalação do Windows 2016, posso responder à minha própria pergunta. A resposta abaixo pode estar incorreta em alguns aspectos, pois a Microsoft não está muito interessada em detalhes sobre o Active Hours; ainda assim, é o meu melhor entendimento de como funciona. A comparação com a conhecida abordagem de atualização Win7/Win2008R2 é feita conforme necessário.
RESPOSTA CURTA: depois de habilitar as atualizações automáticas com
sconfig
, habilite o GPO "Sempre reiniciar automaticamente no horário agendado" para simplesmente ignorar "Horas ativas" e reverter para o comportamento clássico de atualização e reinicialização (leia-se: Win7/Win2008R2). Deixe outros GPOs relevantes (como "ScheduledInstallTime") com suas configurações padrão.LONGA HISTÓRIA: Win7 e Win2008R2 têm um cronograma de atualização simples: por padrão, as atualizações são instaladas às 03:00 e, se necessário, a máquina é reinicializada. Se a máquina estiver desligada no horário de instalação agendado, as atualizações serão instaladas na primeira possibilidade, mas a reinicialização será adiada e deixada de lado conforme a conveniência do usuário.
Essa abordagem de reinicialização adiada foi considerada abaixo do ideal para o modelo Windows as a Service do Windows 10 que, infelizmente, também afetou o Windows 2016. Para evitar um agendamento único e facilmente perdido (03:00) para reinicialização, o Win10 e o Win2016 têm o conceito de "Horas Ativas" - horas em que o servidor é usado ativamente e não deve ser reinicializado. As horas que não estão no intervalo (vamos chamá-las de "Horas Inativas") são consideradas "inativas". Isso significa que fora do "Horário Ativo" o servidor pode ser reinicializado.
No entanto, "Active Hours" pode ser configurado para ter no máximo 12 horas (nota: a última versão do Win10 mudou isso) e, para evitar reinicialização acidental, a Microsoft adicionou alguma heurística genérica para evitar a reinicialização do servidor quando ele é usado fora do " Horários ativos". Por exemplo, parece que a heurística detecta se os usuários estão conectados, se os usuários têm trabalhos não salvos, se os compartilhamentos estão sendo acessados, etc. Isso significa que os servidores que são usados ativamente (ou seja: controladores de domínio, servidor com usuários do Terminal Service registrados, etc.) não serão reinicializados.
Mas há mais: como mesmo os servidores ativos devem ser reinicializados mais cedo ou mais tarde, um cronômetro adicional garante que a máquina seja reiniciada (fora do "Horário Ativo") 7 dias depois , mesmo que o servidor esteja ocupado (nota: os períodos de 7 dias é configurável via GPO). Essa provavelmente é a causa da infinidade de postagens "meu Win2016 reiniciado inesperadamente" que você pode encontrar no Google.
Adicionando o processo de atualização extremamente lento do Windows 2016 e a confusão acima com "Active Hours", minha humilde opinião é que a Microsoft realmente estragou o processo do Windows Update. Parece que o Windows 2019 é melhor a esse respeito, mas considerando o quão fácil (e rápido) é atualizar em qualquer distribuição Linux de nível de servidor, eu realmente me pergunto como a Microsoft pode fazer esse tipo de bagunça.
Para acabar com essa insanidade, o GPO "Sempre reiniciar automaticamente no horário agendado" pode ser usado: ele basicamente desabilitará o novo comportamento "Horário ativo", retornando a um muito mais óbvio (e gerenciável) "reinicializar seu servidor após atualizações que exigem isso" comportamento.