Pegando o serial number pelo PowerShell
Sempre que eu precisava do número de série de uma máquina, era esse o comando que eu rodava:
wmic bios get serialnumber
Rápido, sem instalar nada, funcionava em qualquer Windows. Até o dia em que parou de funcionar e o prompt passou a responder que wmic não é reconhecido como um comando interno ou externo.
Não é problema de digitação nem de permissão: o comando realmente não está mais lá.
A Microsoft marcou o wmic como obsoleto faz tempo e começou a tirá-lo das instalações do Windows. Nas versões mais recentes do Windows 11 ele virou um recurso opcional, desligado por padrão. Dá pra reinstalar, mas correr atrás de um recurso que a própria Microsoft está aposentando não me pareceu o melhor caminho.
O comando que funciona hoje
Fui atrás de um substituto e cheguei nesse aqui, agora no PowerShell:
GWMI -Class Win32_Bios | select SerialNumber
Ele consulta a mesma informação de antes, só que pelo caminho do PowerShell em vez do executável do wmic.
GWMI e select são apelidos. Escrito por extenso, o comando é este:
Get-WmiObject -Class Win32_BIOS | Select-Object SerialNumber
Os dois fazem exatamente a mesma coisa, então use o que for mais confortável. Pra digitar na hora do atendimento, a versão curta ganha.
O Get-WmiObject só existe no Windows PowerShell 5.1, aquele que já vem com o Windows. No PowerShell 7 ele foi removido, e o comando equivalente é o Get-CimInstance.
A versão com Get-CimInstance funciona nos dois:
Get-CimInstance -ClassName Win32_BIOS | Select-Object SerialNumber
Só o número, sem a tabela
Os comandos acima devolvem uma tabelinha com o cabeçalho SerialNumber em cima. Quando eu quero só o valor, pra copiar e colar direto num chamado, uso assim:
(Get-CimInstance -ClassName Win32_BIOS).SerialNumber
Aí a saída é o número de série e nada mais.
Em alguns computadores montados o campo vem vazio, com
To be filled by O.E.M.ou com um valor genérico. Isso não é erro do comando: é o que o fabricante gravou na BIOS.