Pontos principais
- Obtenha BIOS e firmware pelo PowerShell: use a classe Win32_BIOS para extrair dados do fabricante, datas de lançamento e números de série e montar linhas de base de inventário.
- Identifique versões específicas de UEFI: em sistemas modernos, use a classe MSFT_FirmwareInformation ou verificações no registro para confirmar o modo de inicialização e a postura de Inicialização Segura.
- Recorra ao CMD e ao WMIC: use os comandos wmic bios para uma triagem rápida em sistemas com PowerShell restrito ou por compatibilidade com scripts em lote.
- Armazene os dados de firmware no registro: grave as versões coletadas e os carimbos de data/hora no HKLM para acompanhamento persistente e monitoramento centralizado por ferramentas de RMM.
- Automatize auditorias em toda a frota: implante scripts por tarefas agendadas ou com NinjaOne para manter visibilidade contínua e disparar alertas de firmware desatualizado ou vulnerável.
Um BIOS ou firmware desatualizado abre brechas de segurança, deixa o hardware instável e gera chamados de suporte. Coletar com regularidade as versões de BIOS/UEFI e do firmware dos dispositivos é essencial para a conformidade. Melhor ainda: automatizar o inventário amplia a visibilidade e ajuda a priorizar os patches nos ambientes dos clientes.
Este guia mostra como usar o PowerShell para obter a versão do BIOS, marcar os resultados no registro e automatizar relatórios para toda a frota.
| Clique para escolher um método | 💻 Melhor para usuários individuais | 💻💻💻 Melhor para empresas |
| Método 1: use o PowerShell para obter a versão do BIOS e do firmware | ✓ | ✓ |
| Método 2: obtenha a versão do firmware em dispositivos compatíveis com UEFI | ✓ | ✓ |
| Método 3: (opcional) alternativas no CMD para verificar BIOS/firmware | ✓ |
Para uma visão geral rápida, assista ao nosso guia em vídeo Como usar o PowerShell para extrair as versões de BIOS e firmware dos dispositivos e garantir a conformidade do inventário
Automatize o gerenciamento de conformidade com uma única solução de TI.
Métodos para obter a versão do BIOS com o PowerShell e manter a conformidade do inventário
Antes de tudo, garanta que o seguinte esteja pronto:
📌 Pré-requisitos gerais:
- PowerShell 5.1 ou mais recente
- Privilégios de administrador nos endpoints de destino
- Opcional: acesso ao registro local para marcar os resultados
- Opcional: plataforma de RMM (por exemplo, NinjaOne) para execução remota de scripts e relatórios
- Opcional: GPO para impor a periodicidade do inventário
Método 1: use o PowerShell para obter a versão do BIOS e do firmware
Este método usa o PowerShell para consultar diretamente as classes WMI/CIM nativas do Windows e reunir as informações essenciais de BIOS/UEFI, como versão, fabricante, data de lançamento e, quando expostas, as entradas de firmware de componentes.
📌 Casos de uso: ideal para auditar dispositivos antes das verificações de conformidade e montar relatórios de inventário e linhas de base.
Passo a passo:
- Pressione Win + S, digite PowerShell, clique com o botão direito em Windows PowerShell e selecione Executar como administrador. (Leia o item 1 em ⚠️ Pontos de atenção.)
- Obtenha as informações essenciais do BIOS com WMI/CIM:
$bios = Get-CimInstance -ClassName Win32_BIOS$biosInfo = [PSCustomObject]@{ComputerName = $env:COMPUTERNAMEBIOSVersion = ($bios.BIOSVersion -join " ")ReleaseDate = [Management.ManagementDateTimeConverter]::ToDateTime($bios.ReleaseDate).ToString("yyyy-MM-dd")Manufacturer = $bios.ManufacturerSerialNumber = $bios.SerialNumberSMBIOSBIOSVersion = $bios.SMBIOSBIOSVersion}
- Exporte para CSV (confirme que a pasta existe):
$biosInfo | Export-Csv "C:\Reports\BIOS_Inventory_$env:COMPUTERNAME.csv" -NoTypeInformation
Método 2: obtenha a versão do firmware em dispositivos compatíveis com UEFI
Este método se aplica a sistemas modernos inicializados em modo UEFI. Ele confirma se o dispositivo é compatível com UEFI e obtém as informações de firmware específicas de UEFI, com conferência opcional contra os dados do BIOS.
📌 Casos de uso: indicado para criar linhas de base de conformidade apenas com UEFI, verificar versões de firmware em sistemas UEFI e avaliar a postura de Inicialização Segura.
Passo a passo:
- Pressione Win + S, digite PowerShell, clique com o botão direito em Windows PowerShell e selecione Executar como administrador.
- Confirme o modo de inicialização (2 = UEFI, 1 = BIOS legado)
(Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control').PEFirmwareType
- Use a MSFT_FirmwareInformation, disponível a partir do Windows 10 1809:
Get-CimInstance -Namespace root\StandardCimv2 -ClassName MSFT_FirmwareInformation |Select-Object FirmwareVersion, Manufacturer, Description
📌 Observação: em alguns dispositivos UEFI, a classe MSFT_FirmwareInformation pode não retornar resultados, porque o fabricante do firmware não expõe esses valores. Nesses casos, siga para a Etapa 4 (Win32_BIOS) e colete os dados de BIOS/UEFI necessários.
- Recorra ao Win32_BIOS em compilações mais antigas (suporte legado):
Get-CimInstance -ClassName Win32_BIOS
Dica profissional: se PEFirmwareType retornar 1, o dispositivo está em modo legado. Isso é um risco de segurança, já que recursos modernos como Inicialização Segura e Device Guard não funcionam. Use esse inventário para identificar os dispositivos “legados” e convertê-los para UEFI.
Método 3: (opcional) alternativas no CMD para verificar BIOS/firmware
Este método ajuda em ambientes com acesso somente ao CMD ou que exigem scripts em lote. Ele usa ferramentas de linha de comando nativas do Windows para obter versão do BIOS, fabricante, data de lançamento e detalhes básicos do sistema em uma triagem rápida.
📌 Casos de uso: ideal para verificações locais rápidas sem escrever scripts, sobretudo em sistemas restritos.
Passo a passo:
- Pressione Win + S, digite cmd, clique com o botão direito em Prompt de Comando e selecione Executar como administrador (opcional, mas recomendado).
- Para verificações locais básicas:
wmic bios get smbiosbiosversion, version, releasedate, manufacturer
- Redirecione todas as informações do BIOS para um arquivo de texto:
wmic bios get /format:list > C:\Reports\BIOS_Info.txt
📌 Observação: se C:\Reports não existir, atualize o caminho para um diretório existente ou crie o filtro antes:
mkdir C:\Reports
Armazene os dados de BIOS/firmware no registro para monitoramento contínuo
Este método grava as versões coletadas de BIOS/UEFI e do firmware do dispositivo em um caminho fixo do registro, o que permite acompanhamento persistente. Outras funções ou scripts também podem acessar esses dados para relatórios e alertas.
📌 Casos de uso: ideal quando se precisa de dados centralizados para auditorias de conformidade e para monitorar mudanças de versão ao longo do tempo.
Passo a passo:
- Pressione Win + S, digite PowerShell, clique com o botão direito em Windows PowerShell e selecione Executar como administrador.
- Marque o status do inventário de BIOS no registro local para auditoria e análise de logs: (leia o item 2 em ⚠️ Pontos de atenção.)
New-Item -Path "HKLM:\SOFTWARE\Org\BIOSInventory" -ForceSet-ItemProperty -Path "HKLM:\SOFTWARE\Org\BIOSInventory" -Name "BIOSVersion" -Value $bios.SMBIOSBIOSVersionSet-ItemProperty -Path "HKLM:\SOFTWARE\Org\BIOSInventory" -Name "ReleaseDate" -Value $bios.ReleaseDateSet-ItemProperty -Path "HKLM:\SOFTWARE\Org\BIOSInventory" -Name "LastCollected" -Value (Get-Date).ToString("u")
- Verifique pelo CMD:
reg query HKLM\SOFTWARE\Org\BIOSInventory
Automatize a coleta com uma tarefa agendada ou RMM
A coleta de dados de BIOS/firmware precisa ser contínua, não pontual. Este método viabiliza um inventário escalável ao configurar tarefas agendadas em cada dispositivo ou implantar scripts por uma plataforma de RMM como NinjaOne.
📌 Casos de uso: ideal para gerenciar vários endpoints, automatizar auditorias de conformidade e centralizar relatórios.
Antes de rodar o inventário automatizado em notebooks, verifique o status da energia. Não convém marcar como “pronto para atualizar” um dispositivo com apenas 5% de bateria.
$Battery = Get-CimInstance -ClassName Win32_Battery $PowerStatus = if ($Battery.BatteryStatus -eq 2) { "Plugged In" } else { "On Battery" } # Add $PowerStatus to your Registry or CSV output
Instruções:
- Agende o script para rodar semanalmente:
schtasks /create /tn "CollectBIOSInventory" /tr "powershell.exe -File C:\Scripts\BIOSCheck.ps1" /sc weekly /st 03:00 /ru SYSTEM
💡 Consulte o guia oficial da Microsoft: Microsoft Learn – schtasks /create (CLI do Agendador de Tarefas) para agendar scripts.
- Ou use NinjaOne para:
- executar scripts de inventário em todos os tenants
- coletar valores do registro ou exportar arquivos
- disparar alertas quando o BIOS estiver abaixo da versão exigida
- marcar endpoints com firmware desatualizado
💡 Para agendar scripts por RMM, veja Tarefas Agendadas por Política do NinjaOne.
📌 Observação: o Agendador de Tarefas do Windows automatiza em um único dispositivo, mas as políticas do NinjaOne garantem que as tarefas agendadas sejam implantadas e aplicadas de forma consistente em todos os endpoints. Essa centralização reduz o esforço manual e melhora o monitoramento de conformidade.
⚠️ Pontos de atenção
| Riscos | Possíveis consequências | Como reverter |
| 1. Executar a consulta principal ao BIOS sem elevação | Acesso negado; resultados nulos ou parciais | Execute o PowerShell como administrador |
| 2. Gravar no HKLM para marcação sem as chaves pai ou com a arquitetura errada | Chaves não criadas ou gravadas em WOW6432Node | Crie as chaves pai: New-Item 'HKLM:\SOFTWARE\<Org>\FirmwareInventory' -Force; depois Set-ItemProperty. Verifique com reg query. Use o PowerShell de 64 bits. |
Considerações adicionais
Veja outras considerações e boas práticas na hora de coletar dados de versão de BIOS/UEFI para a conformidade do inventário:
Hardware virtual e fora do padrão
Máquinas virtuais (VMs) costumam informar BIOS ou firmware genéricos, que não refletem o hardware real e distorcem os relatórios de inventário. Filtre ou marque as entradas pelo nome do fabricante (por exemplo, VMware, Microsoft) para manter a precisão.
Padronize os patches por modelo
Modelos de hardware diferentes podem exigir atualizações de BIOS específicas, e os padrões de conformidade variam conforme o tipo de dispositivo. Mantenha uma matriz de referência que cruze modelo do dispositivo, versão do BIOS e vulnerabilidades conhecidas.
Automação das atualizações de firmware
Atualizar firmware manualmente consome tempo e abre espaço para erro humano. Considere integrar ferramentas de linha de comando dos fabricantes, como Dell Command Update ou Lenovo System Update, para automatizar o processo.
Ciclo de vida da auditoria
Dispositivos com firmware desatualizado podem já não receber atualizações nem suporte do fabricante. Acompanhe a idade do firmware e as datas de lançamento para identificar sistemas fora da garantia ou sem suporte.
Solução de problemas
Veja os problemas mais comuns na coleta de dados de BIOS/UEFI e como resolvê-los:
Acesso negado
Consultar dados de sistema, gravar no HKLM ou criar tarefas agendadas exige privilégios elevados. Execute o PowerShell como administrador ou agende a tarefa como SYSTEM (com privilégios mais altos).
Retorno de valores nulos
Alguns campos de firmware retornam valores nulos ou vazios, principalmente em sistemas antigos e máquinas virtuais. Detecte o firmware primeiro e use uma cadeia de alternativas segura. Também dá para incluir verificações condicionais no script para tratar valores ausentes.
Formatos de data inconsistentes
As datas de lançamento do BIOS podem aparecer em formatos brutos ou inconsistentes. Use o PowerShell para normalizar a data nos relatórios:
(Get-Date $bios.ReleaseDate).ToString("yyyy-MM-dd")
Chaves do registro não criadas
O script pode falhar ao criar chaves ou gravar valores se faltar o parâmetro -Force, se o caminho pai do registro não existir ou se as permissões forem insuficientes. Confirme o uso de -Force e verifique se toda a hierarquia do registro está definida corretamente.
Números de série ausentes
Se Win32_BIOS retornar “To be filled by O.E.M.”, consulte a classe Computer System Product: Get-CimInstance -ClassName Win32_ComputerSystemProduct | Select-Object IdentifyingNumber
Conheça a gestão de recursos de TI em tempo real e em escala.
Serviços NinjaOne
NinjaOne amplia a visibilidade sobre a conformidade de firmware ao:
| Recurso | O que NinjaOne permite |
| Implantação de scripts em vários tenants | Implantar scripts de inventário de BIOS em todos os tenants |
| Relatórios de inventário baseados no registro | Ler e consolidar valores do registro para relatórios |
| Marcação de conformidade de BIOS | Marcar endpoints com versões de BIOS desatualizadas ou vulneráveis |
| Correção automatizada de firmware | Disparar fluxos automatizados de atualização de firmware |
| Relatórios e exportações entre clientes | Exportar relatórios de inventário de vários clientes para QBRs, auditorias de segurança ou gestão de garantias |
Com NinjaOne, os MSPs mantêm informações atualizadas de firmware em todos os ambientes gerenciados.
Use o PowerShell no inventário de firmware e mantenha o BIOS/UEFI pronto para auditoria
Acompanhar as versões de BIOS e firmware é essencial para fortalecer os endpoints, garantir conformidade e planejar o ciclo de vida. Este guia mostrou como coletar dados de BIOS/UEFI e firmware com PowerShell e CMD; marcar sistemas localmente gravando as versões no registro; automatizar inventário e relatórios com tarefas agendadas ou RMM; e validar e corrigir a precisão dos dados.
Por fim, mostrou como NinjaOne leva essas práticas adiante com visibilidade em vários tenants e relatórios centralizados de todos os clientes, transformando verificações locais em um gerenciamento de conformidade escalável.
Temas relacionados:
