⚡ 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 / Recurso | Situação Atual (Ciclo de Suporte Ativo) | Observações Técnicas |
|---|---|---|
| Windows 11 24H2 | WMIC removido das compilações atuais | Binário ausente em System32wbem por padrão. |
| Windows 11 25H2 / 26H1 | WMIC completamente removido | Não faz parte da imagem base de instalação. |
| WMI (Windows Management Instrumentation) | ✅ Totalmente suportado e ativo | O repositório e os provedores WMI continuam operando normalmente. |
| WMIC como Feature on Demand (FoD) | ❌ Descontinuado no Windows 11 atual | Não disponível mais via painel de Recursos Opcionais no Win11. |
| Windows Server 2025 | ⚠️ Disponível como Feature on Demand | Ainda 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.

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.execriado 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(comoGet-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 Desejada | Comando Antigo (WMIC) | Comando Moderno (PowerShell) |
|---|---|---|
| Número de Série da BIOS | wmic bios get serialnumber | (Get-CimInstance Win32_BIOS).SerialNumber |
| Identificador Único (UUID) | wmic csproduct get uuid | (Get-CimInstance Win32_ComputerSystemProduct).UUID |
| Modelo Comercial do Computador | wmic csproduct get name | (Get-CimInstance Win32_ComputerSystem).Model |
| Fabricante e Modelo da Placa-Mãe | wmic baseboard get manufacturer,product,serialnumber | Get-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 CPU | wmic cpu get name,numberofcores,numberoflogicalprocessors | Get-CimInstance Win32_Processor | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors |
| Pentes de Memória RAM (Capacidade e Clock) | wmic memorychip get capacity,speed,manufacturer,partnumber | Get-CimInstance Win32_PhysicalMemory | Select-Object Capacity, Speed, Manufacturer, PartNumber |
| Discos Rígidos e SSDs Físicos | wmic diskdrive get model,serialnumber,size | Get-CimInstance Win32_DiskDrive | Select-Object Model, SerialNumber, Size |
| Fabricante, Modelo e RAM Total do Sistema | wmic computersystem get manufacturer,model,totalphysicalmemory | Get-CimInstance Win32_ComputerSystem | Select-Object Manufacturer, Model, TotalPhysicalMemory |
2. Sistema Operacional e Armazenamento Lógico
| Consulta Desejada | Comando Antigo (WMIC) | Comando Moderno (PowerShell) |
|---|---|---|
| Edição, Versão e Build do Windows | wmic os get caption,version,buildnumber | Get-CimInstance Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber |
| Data e Hora do Último Boot | wmic os get lastbootuptime | (Get-CimInstance Win32_OperatingSystem).LastBootUpTime |
| Partições, Espaço Livre e Tamanho | wmic logicaldisk get deviceid,size,freespace | Get-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,macaddressVocê pode utilizar a tradução direta via CIM:
Get-CimInstance Win32_NetworkAdapter | Select-Object Name, MACAddressContudo, 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, StatusO 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, IdPara encerrar um processo travado (como o antigo wmic process where "name='notepad.exe'" call terminate):
Stop-Process -Name notepad -ForceGerenciamento 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 SpoolerHistó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,installedonComando Moderno:
Get-HotFix | Select-Object HotFixID, InstalledOn | Sort-Object InstalledOn -DescendingO 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, VersionAtençã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 DisplayNameEsse 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 wmicSe 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, LineAo identificar os arquivos afetados, adote o seguinte roteiro de transição corporativa:
- Catalogação: Localize todas as chamadas ativas de
wmicnos scripts de logon e tarefas agendadas; - Mapeamento de Classe: Identifique a classe WMI correspondente (ex:
Win32_BIOS,Win32_Processor); - Substituição: Adote
Get-CimInstanceou o cmdlet nativo correspondente (comoGet-NetAdapter); - Validação de Saída: Certifique-se de que a nova saída retorna o formato de texto ou objeto esperado pela automação;
- Testes Piloto: Execute os scripts modificados em computadores com Windows 11 atualizado;
- 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 serialnumberNo 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 $sessionPor 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 $optGet-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écnico | Get-WmiObject (WMI v1 – Legado) | Get-CimInstance (CIM – Padrão Moderno) |
|---|---|---|
| Remoto Padrão | DCOM (portas dinâmicas de RPC) | WSMan quando usado com computador remoto (WinRM portas 5985/5986) |
| Local | DCOM / WMI local | COM / DCOM local |
| Compatibilidade PowerShell 7+ | ❌ Incompatível (Removido no PS Core / 6+) | ✅ Nativo no Windows PowerShell 5.1 e PS 7+ (Multiplataforma) |
| Recomendação Oficial | Descontinuado | Padrã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.
Simulados gratuitos para AWS, Oracle OCI, Linux, CompTIA e Microsoft Azure

![Guia Prático de Shell Script no Linux [Com Exemplos Reais 2026]](https://tecmestre.com.br/wp-content/uploads/2026/08/guia-shell-script-linux-automacao-exemplos_optimized-768x429.webp)



Deixe uma resposta
Ver comentários