BGInfo mostra “Server 2016” após migrar para Windows Server 2022: causas, correções e automação

Depois de migrar do Windows Server 2016 para o Windows Server 2022, muitos admins notam que o BGInfo continua exibindo “Server 2016 version 1.0” no bloco Device specifications. Este guia explica por que isso ocorre, como corrigir (Registro ou WMI), e como automatizar em escala.

Índice

Visão geral do problema

Em atualizações in place do Windows Server, o próprio sistema passa a reportar corretamente “Windows Server 2022 Standard/Datacenter” em Windows specifications, winver e consultas CIM/WMI. Entretanto, alguns layouts do BGInfo continuam a mostrar texto antigo, como “Server 2016 version 1.0”, gerando divergência entre o papel de parede (BGInfo) e as informações reais do sistema.

Em geral, a discrepância acontece porque o layout do BGInfo está amarrado a:

  • Um campo legado (por exemplo, o token %OS%), que faz leitura simplificada do Registro ou de variáveis de ambiente e não reflete a edição/versão atual.
  • Um valor de Registro que não foi atualizado durante a migração e “congela” a identificação do SO.
  • Um bitmap antigo gerado pelo BGInfo que permaneceu como papel de parede por cache de sessão—o BGInfo não foi reexecutado após a atualização.

Como o BGInfo obtém as informações do SO

O BGInfo monta o papel de parede a partir de um layout (.bgi) que pode usar múltiplas fontes:

  • Tokens padrão (como %OS%, %ComputerName%, etc.).
  • WMI/CIM (por exemplo, Win32_OperatingSystem), que costuma ser a forma mais fidedigna para nome e versão do Windows.
  • Leituras diretas de Registro.
  • Scripts VB personalizados.

Layouts antigos frequentemente usam %OS% ou mapeamentos simples do Registro. Após a migração, esses campos podem continuar retornando texto de 2016, mesmo que o sistema já seja 2022.

Diagnóstico rápido

  1. Confirme a versão do sistema por fontes confiáveis do próprio Windows: (Get-CimInstance Win32OperatingSystem).Caption, (Get-CimInstance Win32OperatingSystem).Version systeminfo | findstr /B /C:"OS Name" /C:"OS Version" winver
  2. Verifique o layout do BGInfo:
    • Abra o .bgi usado (em muitos ambientes, fica em C:\ProgramData\BGInfo\ ou num compartilhamento).
    • Confira se o campo que exibe o SO é %OS% ou um campo de Registro antigo.
  3. Regenere o papel de parede com o layout atual para descartar cache: Bginfo64.exe "C:\Caminho\LayoutAtual.bgi" /timer:0 /silent /accepteula

Soluções testadas

Abaixo, três estratégias para corrigir a identificação do SO no BGInfo. Escolha a que melhor se adequa ao seu contexto de governança e risco.

SoluçãoPassos essenciaisQuando usar
Ajuste direto no Registro1. Abra regedit.exe.
2. Navegue até HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion.
3. Verifique/ajuste apenas se necessário os valores que o seu layout consome (por ex., CurrentVersion, ProductName) para refletir a família “10.0” e o produto correto.
4. Salve, feche e execute novamente o BGInfo.
Quando você precisa preservar o layout atual do BGInfo e aceita intervir no Registro de forma controlada e homologada.
Consulta WMI personalizada no BGInfo1. Abra o BGInfo → CustomNewWMI Query.
2. Classe: Win32_OperatingSystem; campo Caption (ou Version).
3. Substitua o token padrão (%OS%) por esse campo WMI.
4. Salve o .bgi e aplique.
Ideal para evitar alterações no Registro e garantir um valor “fonte da verdade” diretamente do SO (portável e futuro‑à‑prova).
Atualizar o BGInfo1. Instale uma versão recente (ex.: 4.33 ou superior).
2. Reabra o seu layout; revalide os campos padrão do BGInfo.
3. Reaplique o layout em todos os servidores.
Quando você deseja manter tokens padrão e se beneficiar do reconhecimento nativo do Windows Server 2022 nas versões atuais.

Atenção: alterar chaves do Registro pode afetar detecção de versão por softwares de inventário ou instaladores. Priorize a opção por WMI sempre que possível. Se optar por Registro, teste em laboratório, faça backup e registre a mudança nas suas normas de configuração.

Passo a passo: corrigindo via Registro (com cautela)

Se o seu layout depende explicitamente de valores do caminho ...CurrentVersion, verificar e alinhar esses valores pode resolver a leitura “2016”. Estes são nomes comumente consultados por layouts legados:

Chave/ValorDescriçãoObservações
HKLM\...\CurrentVersion\ProductNameNome do produto (ex.: Windows Server 2022 Standard)Deve refletir a edição atual; é a referência mais segura para o “nome amigável”.
HKLM\...\CurrentVersion\CurrentVersionFamília do SO (ex.: “10.0”)Alguns layouts legados só exibem esse valor; ajuste apenas se for realmente a fonte usada.
HKLM\...\CurrentVersion\CurrentBuildNúmero de buildAjuda a diferenciar releases dentro da mesma família.
HKLM\...\CurrentVersion\DisplayVersion ou ReleaseIdRótulo de releasePresente em builds mais recentes; pode não existir em todas as instalações.

Com PowerShell, você pode inspecionar e (se necessário) ajustar a chave de forma audível:

$cv = 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
Get-ItemProperty $cv | Select-Object ProductName, CurrentVersion, CurrentBuild, DisplayVersion, EditionID

Exemplo de ajuste pontual — use SOMENTE se o seu layout depende desse valor:

Set-ItemProperty \$cv -Name 'CurrentVersion' -Value '10.0'

Após a mudança, force a regeneração do papel de parede:

Bginfo64.exe "C:\ProgramData\BGInfo\Server2022.bgi" /timer:0 /silent /accepteula

Passo a passo: corrigindo via WMI (recomendado)

Esta abordagem dispensa alterações no Registro e tende a continuar correta em futuras versões:

  1. Abra o BGInfo → CustomNewWMI Query.
  2. Em WMI Class, informe Win32_OperatingSystem.
  3. Em Property, selecione Caption ou Version. Exemplos de saídas:
    • Caption: “Microsoft Windows Server 2022 Standard”
    • Version: “10.0.xxxxx”
  4. Salve o campo com um nome amigável, por exemplo OS_Caption.
  5. No layout, substitua %OS% por %OS_Caption% (ou inclua ambos, caso queira mostrar nome e versão).

Se desejar combinar nome + versão em um único campo, use um script VB simples no BGInfo:

Function OSNameAndVersion()
  Dim svc, o
  Set svc = GetObject("winmgmts:\\.\root\cimv2")
  For Each o In svc.ExecQuery("SELECT Caption, Version FROM Win32_OperatingSystem")
    OSNameAndVersion = o.Caption & " (" & o.Version & ")"
    Exit For
  Next
End Function

Salve como campo personalizado e use %OSNameAndVersion% no layout.

Atualizar o BGInfo (e por que isso ajuda)

Versões recentes (por exemplo, 4.33 ou superiores) reconhecem nativamente o Windows Server 2022 nos campos padrão. Em muitos ambientes, apenas atualizar o executável, abrir o layout antigo e salvá‑lo novamente já elimina mapeamentos que teimavam em exibir “2016”.

  • Mantenha o Bginfo64.exe em um local centralizado e versionado (por exemplo, um compartilhamento somente leitura).
  • Padronize os caminhos de fontes (logo, posição, fonte, cor) no .bgi para reduzir diferenças entre servidores.

Automação: aplicando em dezenas ou centenas de servidores

Padronize um .bgi com o campo WMI e distribua via script ou Tarefa Agendada. Exemplo de PowerShell para copiar o layout e relançar o BGInfo remotamente:

# Lista de servidores (um por linha)
$servers = Get-Content .\servers.txt

\$shareLayout = "\\\fileserver\BGInfo\Server2022.bgi"
\$remoteLayout = "C:\ProgramData\BGInfo\Server2022.bgi"
\$bginfoExe    = "C:\Tools\BGInfo\Bginfo64.exe"

foreach (\$s in \$servers) {
try {
\# Copia o layout padronizado
Copy-Item -Path \$shareLayout -Destination "\\\$s\C\$\ProgramData\BGInfo" -Force
```
# Assegura que o executável está disponível (ou use um caminho de rede confiável)
if (-not (Test-Path "\\\$s\C$\Tools\BGInfo")) {
  New-Item -ItemType Directory -Path "\\\$s\C$\Tools\BGInfo" -Force | Out-Null
}
Copy-Item -Path "\\\fileserver\BGInfo\Bginfo64.exe" -Destination "\\\$s\C$\Tools\BGInfo\" -Force

# Executa o BGInfo de forma silenciosa para o usuário logado
Invoke-Command -ComputerName $s -ScriptBlock {
  Start-Process -FilePath "C:\Tools\BGInfo\Bginfo64.exe" `
    -ArgumentList '"C:\ProgramData\BGInfo\Server2022.bgi" /timer:0 /silent /accepteula' `
    -WindowStyle Hidden -PassThru | Wait-Process
}

Write-Host "[$s] BGInfo aplicado com sucesso."
```
} catch {
Write-Warning "\[\$s] Falha ao aplicar BGInfo: \$($\_.Exception.Message)"
}
} 

Alternativamente, crie uma Tarefa Agendada (executando no logon do usuário) que chama:

"C:\Tools\BGInfo\Bginfo64.exe" "C:\ProgramData\BGInfo\Server2022.bgi" /timer:0 /silent /accepteula

Validação e limpeza de cache

  • Reinicie a sessão do usuário (logoff/logon) ou o servidor, principalmente se o papel de parede anterior tiver sido gravado em cache.
  • Forçar regeneração: alguns admins preferem remover o bitmap anterior antes de aplicar o novo: $bmp = Join-Path $env:APPDATA 'BGInfo.bmp' Remove-Item $bmp -ErrorAction SilentlyContinue Start-Process 'C:\Tools\BGInfo\Bginfo64.exe' -ArgumentList '"C:\ProgramData\BGInfo\Server2022.bgi" /timer:0 /silent /accepteula'
  • Confirme via WMI no próprio servidor: (Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version) | Format-List

Boas práticas e segurança

  • Prefira WMI/CIM para nome/versão do SO. É a forma mais resiliente a mudanças de chaves no Registro e a upgrades futuros.
  • Backups antes do Registro: exporte a chave ...CurrentVersion antes de qualquer edição e documente o porquê da alteração.
  • Homologação: valide o novo layout em um subconjunto de servidores (lab ou canário) antes de rodar em produção.
  • BGInfo atualizado: use versão recente (≥ 4.33) para suportar nativamente o Windows Server 2022.
  • Automatize com idempotência: scripts que verificam se o layout já está no lugar e se o executável já está na versão desejada evitam retrabalho.
  • Considere permissões: se o BGInfo rodar como SYSTEM via Tarefa Agendada, o papel de parede pode diferir do aplicado ao usuário. Defina o run context correto.

Exemplos práticos de campos precisos para o BGInfo

O que exibirFonte recomendadaComo configurarObservações
Nome do SOWMI Win32_OperatingSystem.CaptionCustom → New → WMI Query → CaptionRetorna “Microsoft Windows Server 2022 …”.
Versão (família/build)WMI Win32_OperatingSystem.VersionCustom → New → WMI Query → VersionRetorna “10.0.xxxxx”.
EdiçãoRegistro ProductName ou WMI CaptionCustom → Registry ou WMIAjuda a diferenciar Standard vs Datacenter.
Build/ReleaseRegistro CurrentBuild / DisplayVersionCustom → RegistryÚtil para inventário fino.

Erros comuns e como evitar

  • Confiar apenas em %OS%: em ambientes com upgrades, esse token pode não refletir a realidade. Adicione um campo WMI.
  • Não reaplicar o layout após migração: o papel de parede fica preso ao bitmap antigo. Sempre force uma nova execução do BGInfo.
  • Editar chaves erradas: toque somente os valores que o seu layout lê. Evite alterações indiscriminadas no caminho ...CurrentVersion.
  • Rodar BGInfo no contexto incorreto: se a tarefa roda como SYSTEM, o usuário pode não ver o papel de parede. Ajuste o gatilho/conta.

Checklist rápido para fechar a mudança

  1. Layout atualizado para usar WMI (Caption e/ou Version).
  2. BGInfo atualizado (≥ 4.33) e padronizado no repositório.
  3. Tarefa Agendada ou script de logon aplicado a todos os servidores-alvo.
  4. Validação pós-execução (papel de parede, Get-CimInstance e systeminfo coerentes).
  5. Documentação e (se aplicável) rollback do Registro exportado.

FAQ rápido

Isso impacta ativação/licenças?
Não. Ajustes de BGInfo não alteram ativação. Se editar o Registro, limite-se a chaves exibidas pelo BGInfo, não a chaves de licenciamento.

Server Core é suportado?
O BGInfo depende do papel de parede do Explorer. Em Server Core (sem Shell), a utilidade é limitada. Use-o em instalações com GUI.

WMIC está obsoleto; devo evitar?
Sim, prefira PowerShell/CIM e consultas WMI dentro do próprio BGInfo—seguem suportadas e são mais futuras‑à‑prova.

Resumo

O BGInfo pode exibir “Server 2016 version 1.0” após uma migração simplesmente porque o layout usa fontes equivocadas ou um bitmap antigo. A forma mais limpa e resiliente de corrigir é ancorar o layout em WMI (Win32_OperatingSystem). Como alternativa, alinhar o Registro (com cautela) resolve quando você precisa preservar layouts legados. Atualize o BGInfo, padronize o .bgi, automatize a distribuição e valide após logon ou reinicialização. Com isso, o papel de parede volta a refletir fielmente “Windows Server 2022”, alinhando o inventário visual com a realidade do sistema.

Dicas finais: mantenha o executável atualizado, faça backup antes de mexer no Registro, e use scripts idempotentes para evitar drift de configuração. Em ambientes grandes, uma Tarefa Agendada por OU ou GPO simplifica a gestão e garante consistência.

Índice