WMIC Foi Removido do Windows 11: Comandos Equivalentes em PowerShell

Terminal do Prompt de Comando exibindo erro de WMIC removido ao lado do PowerShell executando Get-CimInstance no Windows 11

⚡ Solução Rápida em 5 Segundos:

Em versões atuais do Windows 11 (24H2 ou superior), a mensagem 'wmic' não é reconhecido como um comando interno ou externo normalmente não é problema na sua variável PATH: o utilitário wmic.exe foi removido do sistema operacional pela Microsoft e não está mais disponível como Feature on Demand (FoD).

O subsistema WMI permanece suportado e não foi afetado pela remoção do WMIC. A substituição recomendada pela documentação oficial é utilizar principalmente o cmdlet Get-CimInstance no PowerShell.

Exemplo mais procurado no suporte e inventário:

  • Comando WMIC antigo: wmic bios get serialnumber
  • Equivalente moderno em PowerShell: (Get-CimInstance Win32_BIOS).SerialNumber

O conversor interativo requer JavaScript ativado no navegador. Veja a tabela completa de comandos abaixo.

A remoção do wmic.exe quebrou scripts legados em milhares de departamentos de TI, ferramentas de inventário e rotinas diárias de administradores de sistemas (sysadmins). Quando um comando clássico de inventário é digitado no Prompt de Comando (CMD) do Windows 11, o sistema retorna erro imediato informando que o executável não pôde ser localizado.

Este guia prático reúne o status oficial de remoção atualizado pela Microsoft, um guia De → Para com mais de 20 comandos substitutos validados, o motivo técnico pelo qual você nunca deve traduzir wmic product literalmente para Win32_Product, e como atualizar arquivos .bat legados e scripts remotos sem retrabalho desnecessário.

Status Oficial: O Que Aconteceu com o WMIC no Windows?

Diferente de boatos que circularam em fóruns de suporte, o WMI não foi removido do Windows. O que a Microsoft descontinuou e expurgou das instalações padrão foi unicamente o utilitário de console wmic.exe.

A documentação técnica da Microsoft detalha o seguinte cenário de suporte entre as versões de cliente e servidor:

Sistema Operacional / RecursoSituação Atual (Ciclo de Suporte Ativo)Observações Técnicas
Windows 11 24H2WMIC removido das compilações atuaisBinário ausente em System32wbem por padrão.
Windows 11 25H2 / 26H1WMIC completamente removidoNão faz parte da imagem base de instalação.
WMI (Windows Management Instrumentation)✅ Totalmente suportado e ativoO repositório e os provedores WMI continuam operando normalmente.
WMIC como Feature on Demand (FoD)❌ Descontinuado no Windows 11 atualNão disponível mais via painel de Recursos Opcionais no Win11.
Windows Server 2025⚠️ Disponível como Feature on DemandAinda listado como FoD opcional, com remoção prevista em ciclo futuro.

O detalhe do Windows Server é fundamental para quem administra infraestruturas híbridas: enquanto o Windows 11 atual já não conta com o executável nem com a FoD nativa, o Windows Server 2025 ainda mantém o componente sob demanda para assegurar a transição gradual de softwares corporativos legados.

Comparativo entre comando wmic não reconhecido e Get-CimInstance no PowerShell do Windows 11
Falha de comando inexistente com wmic e a saída estruturada do Get-CimInstance no Windows Terminal.

WMIC × WMI × CIM: Entenda as Diferenças

Grande parte da confusão gerada por esse encerramento de ciclo decorre da semelhança entre as siglas. Compreender o papel de cada camada evita diagnósticos incorretos:

  • WMIC (WMI Command Line Utility): O executável binário wmic.exe criado em 2000 para oferecer uma interface de texto simples ao WMI via CMD. Este executável foi removido.
  • WMI (Windows Management Instrumentation): O ecossistema central do Windows para instrumentação e gerenciamento corporativo (baseado no padrão WBEM). Continua existindo, recebendo atualizações de segurança e respondendo a chamadas do sistema.
  • CIM (Common Information Model) / PowerShell: O padrão moderno da DMTF implementado no PowerShell através do módulo CimCmdlets (como Get-CimInstance). É a forma oficial e recomendada pela Microsoft para consultar o WMI hoje.

Em suma: você não perdeu acesso a nenhum dado de hardware, sistema ou rede. Apenas mudou o mecanismo de linha de comando para acessar essas classes.

Tabela Definitiva: 20 Comandos WMIC e Seus Substitutos em PowerShell

Abaixo você encontra a tabela de migração dividida por categoria de administração. Todos os comandos utilizam PowerShell com Get-CimInstance ou cmdlets nativos mais velozes:

1. Hardware e Inventário Físico

Consulta DesejadaComando Antigo (WMIC)Comando Moderno (PowerShell)
Número de Série da BIOSwmic bios get serialnumber(Get-CimInstance Win32_BIOS).SerialNumber
Identificador Único (UUID)wmic csproduct get uuid(Get-CimInstance Win32_ComputerSystemProduct).UUID
Modelo Comercial do Computadorwmic csproduct get name(Get-CimInstance Win32_ComputerSystem).Model
Fabricante e Modelo da Placa-Mãewmic baseboard get manufacturer,product,serialnumberGet-CimInstance Win32_BaseBoard | Select-Object Manufacturer, Product, SerialNumber
Nome do Processador (CPU)wmic cpu get name(Get-CimInstance Win32_Processor).Name
Cores Físicos e Lógicos da CPUwmic cpu get name,numberofcores,numberoflogicalprocessorsGet-CimInstance Win32_Processor | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors
Pentes de Memória RAM (Capacidade e Clock)wmic memorychip get capacity,speed,manufacturer,partnumberGet-CimInstance Win32_PhysicalMemory | Select-Object Capacity, Speed, Manufacturer, PartNumber
Discos Rígidos e SSDs Físicoswmic diskdrive get model,serialnumber,sizeGet-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber, Size
Fabricante, Modelo e RAM Total do Sistemawmic computersystem get manufacturer,model,totalphysicalmemoryGet-CimInstance Win32_ComputerSystem | Select-Object Manufacturer, Model, TotalPhysicalMemory

2. Sistema Operacional e Armazenamento Lógico

Consulta DesejadaComando Antigo (WMIC)Comando Moderno (PowerShell)
Edição, Versão e Build do Windowswmic os get caption,version,buildnumberGet-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber
Data e Hora do Último Bootwmic os get lastbootuptime(Get-CimInstance Win32_OperatingSystem).LastBootUpTime
Partições, Espaço Livre e Tamanhowmic logicaldisk get deviceid,size,freespaceGet-CimInstance Win32_LogicalDisk | Select-Object DeviceID, Size, FreeSpace

Rede: Nem Tudo Precisa Ser Convertido para CIM

Uma armadilha comum na migração automática é tentar substituir cada chamada de wmic estritamente por uma classe WMI correspondente. No PowerShell moderno, o Windows possui cmdlets nativos de rede muito mais ricos e performáticos.

Para listar os adaptadores de rede e seus respectivos endereços físicos (MAC Address):

Comando WMIC Antigo:

wmic nic get name,macaddress

Você pode utilizar a tradução direta via CIM:

Get-CimInstance Win32_NetworkAdapter | Select-Object Name, MACAddress

Contudo, a abordagem recomendada em PowerShell corporativo é utilizar o cmdlet nativo do módulo NetAdapter. Para filtrar e exibir estritamente as placas de rede físicas da máquina, utilize o parâmetro oficial -Physical:

Get-NetAdapter -Physical | Select-Object Name, InterfaceDescription, MacAddress, Status

O cmdlet Get-NetAdapter retorna por padrão os adaptadores de rede do sistema, e o uso do parâmetro -Physical garante que interfaces virtuais, túneis e miniportas sejam filtrados, isolando apenas os controladores de hardware reais.

Processos e Serviços: Como Gerenciar no PowerShell

Muitos scripts de monitoramento e rotinas de manutenção usavam o WMIC para verificar processos travados e reiniciar serviços:

Gerenciamento de Processos

Para consultar a lista de processos com seus respectivos IDs (PID):

# Alternativa CIM:
Get-CimInstance Win32_Process | Select-Object Name, ProcessId

# Alternativa nativa muito mais rápida:
Get-Process | Select-Object ProcessName, Id

Para encerrar um processo travado (como o antigo wmic process where "name='notepad.exe'" call terminate):

Stop-Process -Name notepad -Force

Gerenciamento de Serviços

Para verificar o estado e o tipo de inicialização de um serviço:

# Consulta de propriedades completas:
Get-CimInstance Win32_Service | Select-Object Name, State, StartMode

# Consulta e controle direto de um serviço específico (ex: Spooler de Impressão):
Get-Service -Name Spooler | Select-Object Name, Status, StartType
Start-Service Spooler
Stop-Service Spooler
Restart-Service Spooler

Histórico de Atualizações do Windows (KBs e Hotfixes)

Para auditoria de conformidade de segurança e verificação de quais pacotes cumulativos foram instalados:

Comando Antigo:

wmic qfe get hotfixid,installedon

Comando Moderno:

Get-HotFix | Select-Object HotFixID, InstalledOn | Sort-Object InstalledOn -Descending

O cmdlet nativo Get-HotFix formata as datas no padrão regional correto da máquina e elimina inconsistências de fusos horários típicas do formato bruto do WMIC. Essa abordagem foi essencial, por exemplo, para auditar e isolar o bug da atualização KB5120998 no Windows 11.

⚠️ O Caso Especial de “wmic product”: Por Que NÃO Usar Win32_Product

Este é o ponto técnico mais crítico de qualquer projeto de migração. Ao procurar um substituto para o comando wmic product get name,version, a maioria dos administradores tenta rodar:

# NÃO EXECUTE ISTO EM AMBIENTE CORPORATIVO:
Get-CimInstance Win32_Product | Select-Object Name, Version

Atenção Técnica: Efeito Colateral da Classe Win32_Product

A classe WMI Win32_Product não é otimizada para simples leitura. A Microsoft alerta explicitamente na documentação que essa classe provoca uma verificação de consistência e reparo das instalações MSI do sistema, podendo tornar a consulta muito lenta e gerar eventos do Windows Installer (como o Event ID 1035 no Visualizador de Eventos). Por isso, o uso de Win32_Product não é recomendado para rotinas de inventário.

A Alternativa Rápida e Segura Recomendada pela Microsoft

Para listar os programas instalados de forma limpa e sem acionar rotinas de validação de pacotes MSI, consulte diretamente as chaves de desinstalação do Registro do Windows:

Get-ItemProperty `
  HKLM:SoftwareMicrosoftWindowsCurrentVersionUninstall*, `
  HKLM:SoftwareWOW6432NodeMicrosoftWindowsCurrentVersionUninstall* |
Where-Object DisplayName |
Select-Object DisplayName, DisplayVersion, Publisher |
Sort-Object DisplayName

Esse comando varre tanto programas nativos de 64 bits quanto softwares legados de 32 bits através do nó WOW6432Node de maneira totalmente passiva e segura.

WMIC Não É Reconhecido no Windows 11: É Problema no PATH?

Quando o terminal retorna a mensagem de erro:

'wmic' não é reconhecido como um comando interno
ou externo, um programa operável ou um arquivo em lotes.

Muitos tutoriais antigos na internet recomendavam editar as Variáveis de Ambiente e adicionar C:WindowsSystem32wbem à variável de sistema PATH. Isso não vai resolver no Windows 11 atualizado.

Você pode testar a existência real do binário no seu terminal executando:

# Verificação via PowerShell:
Get-Command wmic -ErrorAction SilentlyContinue

# Verificação via CMD:
where.exe wmic

Se ambos retornarem em branco, o executável wmic.exe simplesmente não existe fisicamente na sua máquina. O diretório wbem já faz parte do PATH padrão do Windows desde a instalação; adicionar novamente o caminho não surtirá nenhum efeito porque o arquivo binário foi de fato descontinuado e apagado pela Microsoft.

É Possível Reinstalar o WMIC no Windows 11? (Mitigação Oficial Temporária)

Nas compilações iniciais do Windows 11, o WMIC ainda podia ser adicionado pelo menu de Recursos Opcionais ou via comando DISM (dism /Online /Add-Capability /CapabilityName:WMIC~~~~). Contudo, nas versões atuais suportadas do Windows 11, essa funcionalidade deixou de estar disponível como Feature on Demand.

Para empresas com aplicações críticas e instaladores proprietários legados que dependem de chamadas rígidas ao wmic.exe, a Microsoft publicou uma mitigação temporária oficial.

Mitigação Temporária da Microsoft (Pacote de Transição)

A documentação oficial da Microsoft disponibiliza atualmente um pacote arquivado intitulado wmic_dlc.zip acompanhado de um script de implantação install.ps1. Esse arquivo restaura o binário e seus provedores estritamente para permitir que empresas mantenham sistemas legados em operação enquanto concluem a migração.

Aviso de Segurança: A própria Microsoft adverte enfaticamente que essa solução não é permanente nem segura para o longo prazo, recomendando a migração definitiva para scripts PowerShell/CIM o quanto antes.

Você pode consultar as instruções de implantação do pacote de transição diretamente na documentação oficial do WMIC no Microsoft Learn.

Como Migrar Scripts .BAT e .CMD Antigos

Se a sua infraestrutura conta com arquivos .bat ou scripts de logon que capturam dados de hardware em variáveis de ambiente, você não precisa reescrever todo o script para .ps1 imediatamente. O Prompt de Comando pode invocar o PowerShell em linha única para preencher suas variáveis:

Código Antigo (.bat com WMIC):

@echo off
for /f "tokens=2 delims==" %%a in ('wmic bios get serialnumber /value') do set SERIAL=%%a
echo O numero de serie e: %SERIAL%

Código Novo (.bat com PowerShell embutido):

@echo off
for /f "usebackq tokens=*" %%a in (`powershell -NoProfile -Command "(Get-CimInstance Win32_BIOS).SerialNumber"`) do set SERIAL=%%a
echo O numero de serie e: %SERIAL%

O argumento -NoProfile assegura inicialização imediata do interpretador, sem carregar módulos de perfil de usuário desnecessários.

Como Descobrir Quais Scripts da Empresa Ainda Usam WMIC

Para evitar surpresas quando novas estações de trabalho receberem o Windows 11, você pode realizar uma varredura automatizada em todos os repositórios de scripts e compartilhamentos de rede:

Get-ChildItem -Path "C:Scripts", "servidornetlogon" -Recurse -File -Include *.bat, *.cmd, *.ps1, *.vbs |
  Select-String -Pattern 'bwmic(?:.exe)?b' |
  Select-Object Path, LineNumber, Line

Ao identificar os arquivos afetados, adote o seguinte roteiro de transição corporativa:

  1. Catalogação: Localize todas as chamadas ativas de wmic nos scripts de logon e tarefas agendadas;
  2. Mapeamento de Classe: Identifique a classe WMI correspondente (ex: Win32_BIOS, Win32_Processor);
  3. Substituição: Adote Get-CimInstance ou o cmdlet nativo correspondente (como Get-NetAdapter);
  4. Validação de Saída: Certifique-se de que a nova saída retorna o formato de texto ou objeto esperado pela automação;
  5. Testes Piloto: Execute os scripts modificados em computadores com Windows 11 atualizado;
  6. Desativação: Remova qualquer dependência do pacote temporário de compatibilidade.

Administração Remota: Substituindo o Parâmetro /node por CIM Session

O WMIC era muito utilizado por administradores de rede para inspecionar computadores remotos através do argumento /node::

# Sintaxe Antiga:
wmic /node:PC-FINANCEIRO bios get serialnumber

No PowerShell, a administração remota é realizada de forma muito mais segura utilizando CIM Sessions:

# 1. Cria a sessão remota segura:
$session = New-CimSession -ComputerName "PC-FINANCEIRO"

# 2. Executa a consulta através da sessão:
Get-CimInstance Win32_BIOS -CimSession $session | Select-Object SerialNumber

# 3. Encerra a sessão:
Remove-CimSession $session

Por padrão, o New-CimSession utiliza o protocolo WS-Man (WinRM) através das portas padrão 5985 (HTTP) e 5986 (HTTPS). Isso elimina os antigos problemas de firewalls bloqueando conexões DCOM aleatórias do WMIC.

Caso precise conectar a servidores muito antigos sem suporte a WinRM, você pode instruir explicitamente o PowerShell a usar o protocolo DCOM legadado criando uma opção de sessão:

$opt = New-CimSessionOption -Protocol Dcom
$session = New-CimSession -ComputerName "SRV-LEGADO" -SessionOption $opt

Get-WmiObject ou Get-CimInstance: Qual Você Deve Usar?

Alguns fóruns de suporte e scripts de terceiros recomendam utilizar o comando Get-WmiObject. É fundamental entender a diferença de gerações:

Critério TécnicoGet-WmiObject (WMI v1 – Legado)Get-CimInstance (CIM – Padrão Moderno)
Remoto PadrãoDCOM (portas dinâmicas de RPC)WSMan quando usado com computador remoto (WinRM portas 5985/5986)
LocalDCOM / WMI localCOM / DCOM local
Compatibilidade PowerShell 7+❌ Incompatível (Removido no PS Core / 6+)✅ Nativo no Windows PowerShell 5.1 e PS 7+ (Multiplataforma)
Recomendação OficialDescontinuadoPadrão recomendado pela Microsoft para novos desenvolvimentos

Para qualquer script desenvolvido ou mantido hoje, padronize sempre em Get-CimInstance. O uso de Get-WmiObject apenas adiará a necessidade de uma nova refatoração de código quando sua infraestrutura adotar o PowerShell 7 moderno.

Perguntas Frequentes (FAQ)

Por que o comando WMIC não funciona no Windows 11?

A Microsoft removeu o utilitário executável wmic.exe das versões atuais do Windows 11 (como 24H2 e posteriores). Ele foi descontinuado devido à idade de sua arquitetura baseada em DCOM e à falta de saída estruturada, sendo oficialmente substituído pelos cmdlets de PowerShell baseados em CIM.

A Microsoft removeu o WMI do Windows?

Não. O subsistema WMI (Windows Management Instrumentation) permanece suportado e não foi afetado pela remoção do WMIC em todas as versões do Windows 11 e Windows Server. O que foi removido foi exclusivamente o programa de linha de comando wmic.exe.

Ainda é possível instalar o WMIC no Windows 11?

O WMIC não está mais disponível no catálogo de Recursos Opcionais (Feature on Demand) do Windows 11 atual. Entretanto, a Microsoft fornece temporariamente um pacote oficial de mitigação (wmic_dlc.zip com install.ps1) para sistemas legados, devendo ser usado apenas em caráter transitório enquanto as automações são migradas.

Qual comando substitui wmic bios get serialnumber?

O substituto oficial e direto em PowerShell é (Get-CimInstance Win32_BIOS).SerialNumber. Ele lê exatamente a mesma tabela de hardware da placa-mãe sem depender do executável descontinuado.

Devo usar Get-WmiObject ou Get-CimInstance?

Você deve utilizar sempre Get-CimInstance. O antigo cmdlet Get-WmiObject foi descontinuado pela Microsoft e não existe no PowerShell 7+ (Core). O Get-CimInstance utiliza o protocolo padrão WS-Man e é totalmente compatível com ambientes modernos.

🎓 Continue Aprendendo com Nossos Simulados

Simulados gratuitos para AWS, Oracle OCI, Linux, CompTIA e Microsoft Azure

Especialista em Infraestrutura de TI, Linux, Redes e Computação em Nuvem (AWS & Oracle Cloud). Fundador e autor técnico no TecMestre.