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.
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
- 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
- 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.
- Abra o .bgi usado (em muitos ambientes, fica em
- 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ção | Passos essenciais | Quando usar |
---|---|---|
Ajuste direto no Registro | 1. 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 BGInfo | 1. Abra o BGInfo → Custom → New → WMI 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 BGInfo | 1. 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/Valor | Descrição | Observações |
---|---|---|
HKLM\...\CurrentVersion\ProductName | Nome 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\CurrentVersion | Família do SO (ex.: “10.0”) | Alguns layouts legados só exibem esse valor; ajuste apenas se for realmente a fonte usada. |
HKLM\...\CurrentVersion\CurrentBuild | Número de build | Ajuda a diferenciar releases dentro da mesma família. |
HKLM\...\CurrentVersion\DisplayVersion ou ReleaseId | Rótulo de release | Presente 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:
- Abra o BGInfo → Custom → New → WMI Query.
- Em WMI Class, informe
Win32_OperatingSystem
. - Em Property, selecione
Caption
ouVersion
. Exemplos de saídas:Caption
: “Microsoft Windows Server 2022 Standard”Version
: “10.0.xxxxx”
- Salve o campo com um nome amigável, por exemplo OS_Caption.
- 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 exibir | Fonte recomendada | Como configurar | Observações |
---|---|---|---|
Nome do SO | WMI Win32_OperatingSystem.Caption | Custom → New → WMI Query → Caption | Retorna “Microsoft Windows Server 2022 …”. |
Versão (família/build) | WMI Win32_OperatingSystem.Version | Custom → New → WMI Query → Version | Retorna “10.0.xxxxx”. |
Edição | Registro ProductName ou WMI Caption | Custom → Registry ou WMI | Ajuda a diferenciar Standard vs Datacenter. |
Build/Release | Registro CurrentBuild / DisplayVersion | Custom → 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
- Layout atualizado para usar WMI (
Caption
e/ouVersion
). - BGInfo atualizado (≥ 4.33) e padronizado no repositório.
- Tarefa Agendada ou script de logon aplicado a todos os servidores-alvo.
- Validação pós-execução (papel de parede,
Get-CimInstance
esysteminfo
coerentes). - 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.