As melhores opções divididas entre um software multiplataforma e os recursos nativos de cada sistema para realizar o levantamento detalhado de hardware em um laboratório que consigam ler as tabelas DMI (Desktop Management Interface) do BIOS/UEFI.
1 – Sugestão de Software: OCSI Inventory NG ou GLPI
Se você busca uma solução profissional para inventário de rede (com suporte a Windows e Linux), o GLPI (com o agente GLPI-Agent) é o padrão da indústria.
- Vantagens: Funciona em ambos os sistemas, detecta detalhes profundos (número de slots, tipo de RAM, barramentos PCIe) e centraliza tudo em uma interface web.
- Relatório: Permite exportar tabelas completas de todos os computadores do laboratório para PDF ou Excel de uma só vez.
2 – Levantamento via Recursos Nativos
Se você prefere não instalar um servidor de inventário e quer extrair as informações diretamente de cada máquina, utilize os comandos abaixo.
No Windows (PowerShell / CMD)
O Windows possui o msinfo32(GUI), wmic ou Get-CimInstance (Terminal).
- Para a Placa-mãe:
- Get-CimInstance Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber, Version | Format-Table
- wmic baseboard get manufacturer, product, version, serialnumber /format:list
- Para Slots de Memória (Quantidade e Tipo):
- Get-CimInstance Win32_PhysicalMemoryArray | Select-Object MemoryDevices, @{n=”MaxCapacityInGB”;e={$_.MaxCapacity / 1MB}}
- Get-CimInstance Win32_PhysicalMemory | Select-Object BankLabel, Capacity, Speed, ConfiguredClockSpeed, DeviceLocator | Format-Table
- wmic memphysical get memorydevices, maxcapacity
- wmic memorychip get devicelocator, capacity, speed, configuredclockspeed, manufacturer /format:list
- Para Slots de Expansão (PCI/PCIe):
- Get-CimInstance Win32_SystemSlot | Select-Object SlotDesignation, CurrentUsage, Description | Format-Table
- wmic sysslot get slotdesignation, currentusage, description
Como gerar PDF:
- Pressione Win + R, digite msinfo32 e dê Enter.
- Vá em **Arquivo > Exportar** (salva como .txt) ou **Arquivo > Imprimir** e selecione “Microsoft Print to PDF”.
Outros comando para estudar:
- pnputil
- dxdiag
- systeminfo
- Get-PhysicalDisk
No Linux (Terminal)
No Linux, a ferramenta mais completa é o `dmidecode`, que lê diretamente o hardware.
- Informações da Placa-mãe:
- sudo dmidecode -t baseboard
- Slots de Memória e Capacidade Máxima:
- sudo dmidecode -t memory
- Slots de Expansão (PCIe):
- sudo dmidecode -t slot
Como gerar PDF:
- A forma mais limpa é usar o comando `lshw`, que já possui saída em HTML (que você pode imprimir como PDF no navegador): sudo apt install lshw -y && sudo lshw -html > hardware.html
- Depois, abra o arquivo `hardware.html` no Chrome/Firefox e use o atalho `Ctrl + P` para **Salvar como PDF**.
3 – Resumo de Comandos Úteis
| Componente | Comando Windows (CMD/PS) | Comando Linux (Terminal) |
| Placa-mãe | wmic baseboard get product | sudo dmidecode -t 2 |
| Processador | wmic cpu get name | lscpu |
| RAM (Slots/Tipo) | wmic memorychip list full | sudo dmidecode -t 17 |
| Slots Expansão | wmic path win32_bus get devicename | sudo dmidecode -t 9 |
Dica de Ouro:
Para um levantamento rápido e visual em máquinas individuais sem instalar nada complexo, o software CPU-Z (Windows) e o CPU-X (Linux) são idênticos e mostram abas específicas para “Mainboard” e “Memory”. No Windows, o CPU-Z gera um relatório em texto/HTML que pode ser impresso em PDF.
Para compilar as informações sobre levantamento de hardware em ambientes Windows e Linux, utilizei como base as documentações oficiais das ferramentas de gerenciamento de sistemas (WMI para Windows e DMI para Linux), além dos manuais de softwares de código aberto amplamente utilizados para inventário de TI.
4 – Scripts
Para Windows
Script PowerShell: Gerador de Inventário de Hardware:
# Define o caminho do arquivo de saída
$reportPath = "$env:USERPROFILE\Desktop\Inventario_Hardware.html"
# Estilo CSS para o relatório (Melhorado para leitura técnica)
$style = @"
<style>
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; margin: 30px; background-color: #f0f2f5; color: #333; }
h1 { color: #1a3a5a; border-bottom: 3px solid #1a3a5a; padding-bottom: 10px; }
h2 { background-color: #1a3a5a; color: white; padding: 8px 15px; border-radius: 5px; margin-top: 30px; }
table { border-collapse: collapse; width: 100%; background: white; margin-bottom: 20px; border-radius: 8px; overflow: hidden; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
th { background-color: #2c3e50; color: white; padding: 12px; text-align: left; text-transform: uppercase; font-size: 0.9em; }
td { padding: 10px; border-bottom: 1px solid #eee; }
tr:hover { background-color: #f1f1f1; }
</style>
"@
# 1. Coleta de dados da Placa-mãe
$baseboard = Get-CimInstance Win32_BaseBoard |
Select-Object Manufacturer, Product, Version, SerialNumber |
ConvertTo-Html -Fragment -PreContent "<h2>Informações da Placa-Mãe</h2>"
# 2. Coleta de Slots de Memória (Capacidade Máxima Suportada)
$memPhysical = Get-CimInstance Win32_PhysicalMemoryArray |
Select-Object MemoryDevices, @{Name="Capacidade Máxima (GB)"; Expression={[Math]::Round($_.MaxCapacity / 1MB, 0)}} |
ConvertTo-Html -Fragment -PreContent "<h2>Capacidade Física da Placa (Slots)</h2>"
# 3. Detalhes dos Pentes de Memória Instalados
# Nota: Usamos SMBIOSMemoryType para identificar DDR3/DDR4 corretamente
$memChips = Get-CimInstance Win32_PhysicalMemory |
Select-Object DeviceLocator,
@{Name="Capacidade (GB)"; Expression={[Math]::Round($_.Capacity / 1GB, 0)}},
@{Name="Velocidade (MHz)"; Expression={$_.Speed}},
@{Name="Fabricante"; Expression={$_.Manufacturer}} |
ConvertTo-Html -Fragment -PreContent "<h2>Pentes de Memória Instalados</h2>"
# 4. Slots de Expansão (PCI/PCIe) - Corrigido
$pciSlots = Get-CimInstance Win32_SystemSlot |
Select-Object SlotDesignation, CurrentUsage, Description |
ConvertTo-Html -Fragment -PreContent "<h2>Slots de Expansão (PCI/PCIe)</h2>"
# 5. Informações do Gabinete e Chassi
$systemEnclosure = Get-CimInstance Win32_SystemEnclosure |
Select-Object Manufacturer, @{Name="Tipo de Chassi"; Expression={$_.ChassisTypes}} |
ConvertTo-Html -Fragment -PreContent "<h2>Informações do Gabinete</h2>"
# Montagem do arquivo final
$htmlBody = @"
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<title>Inventário de Hardware - $(hostname)</title>
$style
</head>
<body>
<h1>Relatório de Levantamento de Hardware</h1>
<p><strong>Hostname:</strong> $($env:COMPUTERNAME)</p>
<p><strong>Gerado em:</strong> $(Get-Date -Format "dd/MM/yyyy HH:mm:ss")</p>
<hr>
$baseboard
$memPhysical
$memChips
$pciSlots
$systemEnclosure
</body>
</html>
"@
# Salva o arquivo com codificação UTF8 para evitar erros de acentuação
$htmlBody | Out-File $reportPath -Encoding utf8
Write-Host "---------------------------------------------------"
Write-Host "Relatório gerado com sucesso!" -ForegroundColor Cyan
Write-Host "Local: $reportPath" -ForegroundColor Green
Write-Host "---------------------------------------------------"
Para Linux
Script Bash: Gerador de Inventário Linux
#!/bin/bash
# Define o arquivo de saída
OUTPUT_FILE="relatorio_hardware.html"
# Estilo CSS para o relatório
STYLE="
<style>
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; margin: 40px; background-color: #1a1a1a; color: #e0e0e0; }
h1 { color: #00bcff; border-bottom: 2px solid #00bcff; padding-bottom: 10px; }
h2 { color: #f39c12; margin-top: 30px; background: #333; padding: 10px; border-left: 5px solid #f39c12; }
pre { background-color: #2d2d2d; border: 1px solid #444; padding: 15px; border-radius: 5px; overflow-x: auto; color: #9cdcfe; font-size: 14px; }
.timestamp { font-size: 0.9em; color: #888; }
</style>
"
# Início do HTML
echo "<html><head><meta charset='UTF-8'><title>Relatório de Hardware Linux</title>$STYLE</head><body>" > $OUTPUT_FILE
echo "<h1>Relatório de Levantamento de Hardware - Linux</h1>" >> $OUTPUT_FILE
echo "<p class='timestamp'>Gerado em: $(date '+%d/%m/%Y %H:%M:%S')</p>" >> $OUTPUT_FILE
# 1. Informações da Placa-mãe
echo "<h2>Informações da Placa-mãe</h2><pre>" >> $OUTPUT_FILE
sudo dmidecode -t baseboard >> $OUTPUT_FILE
echo "</pre>" >> $OUTPUT_FILE
# 2. Slots de Memória e Capacidade Máxima
echo "<h2>Slots de Memória e Capacidade Máxima</h2><pre>" >> $OUTPUT_FILE
sudo dmidecode -t memory >> $OUTPUT_FILE
echo "</pre>" >> $OUTPUT_FILE
# 3. Slots de Expansão (PCIe)
echo "<h2>Slots de Expansão (PCIe)</h2><pre>" >> $OUTPUT_FILE
sudo dmidecode -t slot >> $OUTPUT_FILE
echo "</pre>" >> $OUTPUT_FILE
# Fim do HTML
echo "</body></html>" >> $OUTPUT_FILE
echo "Concluído! O relatório foi gerado em: $OUTPUT_FILE"
Ilustrações
SVG REPO
Disponível em: https://www.svgrepo.com/svg/366188/hardware-detect
Acesso em: 05 mai. 2026.
Referências
MICROSOFT – Computer System Hardware Classes
Disponível em: https://learn.microsoft.com/en-us/windows/win32/cimwin32prov/computer-system-hardware-classes
Acesso em: 05 mai. 2026.
SAVANNAH – Projeto Dmidecode
Disponível em: https://www.nongnu.org/dmidecode/
Acesso em: 05 mai. 2026.
DIE – Linux man page
Disponível em: https://linux.die.net/man/8/dmidecode
Acesso em: 05 mai. 2026.
EZIX – Hardware Lister (lshw)
Disponível em: https://project.ezix.org/wiki/HardwareLiSter
Acesso em: 05 mai. 2026.