À primeira vista o desaparecimento silencioso do wmic.exe no Windows 11 24H2 parece apenas mais uma mudança de versão; na prática, contudo, ele abre um buraco nas rotinas de scripts, inventário e manutenção que muitas organizações mantêm há décadas, exigindo ação planejada para evitar falhas em produção.
Por que o WMIC some no 24H2?
O utilitário de linha de comando WMIC (Windows Management Instrumentation Command‑line) foi declarado deprecated pela Microsoft desde o Windows 10 21H1. A build 24H2 do Windows 11 deu o passo seguinte: sempre que o binário estiver presente na imagem, o sistema remove automaticamente o recurso “WMIC~~~~” durante a primeira experiência de utilização (OOBE). A prova pode ser vista no C:\Windows\Logs\CBS\CBS.log
, onde surge uma entrada semelhante a:
[SR] Repairing 1 components...
[SR] Beginning Verify and Repair transaction
...
Info CBS Doqe: Removing package: WMIC~~~~0.0.1.0 (marked as obsolete)
Como a remoção ocorre numa fase que foge ao controlo dos administradores (logo após o primeiro login) não adianta adicioná‑lo antes via DISM ou distribuir o FOD através do SCCM — o executável simplesmente desaparece minutos depois.
Consequências imediatas
- Falha de scripts legados — qualquer chamada direta a
wmic.exe
passa a retornar “file not found”. - Erros em instaladores de software antigo que executam inventário via WMIC.
- Retrabalho manual: reinstalar o FOD em cada PC não é factível, e a reinstalação automática só prolonga o ciclo (será removido de novo na próxima OOBE ou atualização de build).
- Desempenho: copiar o FOD para cada máquina consome 5‑15 min mesmo em rede local.
Mapa de ação recomendado
Objetivo | Ação recomendada | Racional / Observações |
---|---|---|
Automatizar tarefas WMI sem interrupções | Migrar para cmdlets CIM/WMI do PowerShell (Get‑CimInstance , Invoke‑CimMethod …) | API moderna, funciona via WinRM, permanece suportada no futuro |
Eliminar dependência de wmic.exe em software de terceiros | Solicitar atualização ao fornecedor ou avaliar alternativa | Pode requerer cronograma de projeto e homologação |
Administração remota | Adotar PowerShell Remoting, Windows Admin Center ou WMI Explorer (CIM) | Não exigem presença do binário legado |
Necessidade inadiável de WMIC | Congelar em Windows 11 22H2 ou anterior enquanto remove dependências | Solução paliativa: apenas se não houver saída no curto prazo |
Instalação lenta de FODs | Manter repositório FOD local e apontar DISM/SCCM com /Source: | Reduz tráfego de download; não evita a remoção em OOBE |
Convertendo rapidamente comandos WMIC para PowerShell
Os cmdlets CIM/WMI do PowerShell fornecem o mesmo alcance funcional com sintaxe diferente. Alguns exemplos práticos:
Tarefa | WMIC clássico | PowerShell moderno |
---|---|---|
Listar processadores | wmic cpu get Name,NumberOfCores | Get-CimInstance -ClassName Win32_Processor | Select-Object Name,NumberOfCores |
Obter número de série do BIOS | wmic bios get SerialNumber | (Get-CimInstance Win32_BIOS).SerialNumber |
Inventário de softwares | wmic product get Name,Version | Get-CimInstance Win32_Product | Select Name,Version |
Reiniciar PC remoto | wmic /node:"PC01" process call create "shutdown /r /t 0" | Invoke-CimMethod -ComputerName PC01 -ClassName Win32_OperatingSystem -MethodName Reboot |
Dica rápida — módulo WmiCommandletMigration
Para acelerar a transição, crie um módulo interno que exponha funções com mesmos nomes de parâmetros do WMIC e chame internamente os cmdlets CIM. Isso facilita a refatoração de lotes extensos sem reescrever cada linha.
Como identificar scripts dependentes de WMIC
- Varredura de repositórios: use
Select-String -Pattern '\bwmic(\.exe)?\b' -Path .ps1,.bat,*.cmd -Recurse
nos seus shares de scripts. - Análise de logs: consulte o Event Viewer em “Windows Logs > Application” por erros das aplicações após a migração piloto.
- Inventário de pacotes SCCM: filtre a coluna “Command Line” por “wmic”.
Gerindo fornecedores que ainda exigem WMIC
Nem sempre é possível alterar o código de terceiros. Eis um roteiro prático:
- Abra chamado formal descrevendo o End of Service do WMIC com evidências da CBS.log.
- Defina prazo interno máximo para atualização ou substituição da solução.
- Implemente telemetria (por exemplo, AppLocker em modo Audit) para medir uso residual do binário.
- Negocie contrato de suporte estendido ou desconto se a atualização exigir investimento extra.
Solução temporária: manter WMIC vivo até a desinstalação
Embora não recomendado, pode ser necessário reinstalar o FOD em máquinas específicas logo após o OOBE para cumprir auditoria ou atender implantação crítica. O script abaixo — executado por GPO de Startup — restaura o recurso, mas pode aumentar o tempo de boot:
powershell.exe -NoProfile -ExecutionPolicy Bypass -Command ^
"Add-WindowsCapability -Online -Name WMIC~~~~ -Source \\SERVER\Share\FoD\ -LimitAccess -ErrorAction Stop"
Use apenas enquanto finaliza a transição; a cada upgrade de feature o processo recomeçará.
Melhorando o desempenho da instalação de Features on Demand
Quando não há cache local, o DISM busca o pacote na nuvem da Microsoft, etapa agravada por múltiplas políticas de restrição de tráfego. Para reduzir o tempo:
- Sincronize previamente
\\SERVER\Share\FoD\
com o conteúdo deSSU\FoD\24H2\
. - Informe ao DISM ou ao SCCM o caminho via parâmetro
/Source:
ou política de grupo Specify settings for optional component installation and component repair. - Garanta que a share esteja replicada para filiais (DFS R) e otimizada em links WAN.
Checklist de migração livre de WMIC
- [ ] Mapear todos os scripts .cmd/.bat/.ps1 que contêm
wmic
. - [ ] Classificar por criticidade e frequência de execução.
- [ ] Converter os TOP 20 primeiro; validar em laboratório 24H2.
- [ ] Revisar job schedules (SCCM, Orchestrator, Jenkins) que chamam lotes antigos.
- [ ] Exigir roadmap de correção a fornecedores externos.
- [ ] Atualizar documentações internas (runbooks, SOPs).
- [ ] Habilitar monitoramento de falhas pós‑migração (Ex: SCOM ou Azure Monitor).
Perguntas frequentes
É possível impedir o sistema de remover o WMIC durante a OOBE via política ou registro?
No momento, não. A lógica de remoção é incorporada ao Setup; não existe chave de registro documentada nem política ADMX que a desative.
Os cmdlets CIM/WMI exigem abrir portas diferentes no firewall?
Por padrão utilizam WinRM (porta 5985/HTTP ou 5986/HTTPS). Em domínios Windows isso já fica habilitado por Group Policy; caso contrário, configure regra de entrada para %SystemRoot%\System32\svchost.exe -k DcomLaunch
e Service “Windows Remote Management”.
E se meus scripts estiverem em VBScript ou JScript, sem PowerShell?
A biblioteca WMI permanece no sistema (wbemprox.dll
, wmiprvse.exe
), apenas o executável WMIC foi removido. Logo, GetObject("winmgmts:")
em VBScript continua funcional. Considere portar para PowerShell no médio prazo.
Conclusão
A remoção definitiva do WMIC em Windows 11 24H2 é apenas a mais visível de uma série de limpezas previstas pela Microsoft para modernizar a plataforma. Postergar a migração significa acumular dívida técnica e tempo gasto em reinstalações que se rasgam a cada atualização de build. Comece pela conversão de scripts prioritários para cmdlets CIM, cobre dos fornecedores o suporte a APIs recentes e mantenha um repositório de Features on Demand para emergências, porém sem depender dele a longo prazo. Com planejamento, o impacto é contido e sua infraestrutura ganha preparo para as próximas versões do Windows.