Como lidar com a remoção automática do WMIC no Windows 11 24H2

À 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.

Índice

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

ObjetivoAção recomendadaRacional / Observações
Automatizar tarefas WMI sem interrupçõesMigrar 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 terceirosSolicitar atualização ao fornecedor ou avaliar alternativaPode requerer cronograma de projeto e homologação
Administração remotaAdotar PowerShell Remoting, Windows Admin Center ou WMI Explorer (CIM)Não exigem presença do binário legado
Necessidade inadiável de WMICCongelar em Windows 11 22H2 ou anterior enquanto remove dependênciasSolução paliativa: apenas se não houver saída no curto prazo
Instalação lenta de FODsManter 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:

TarefaWMIC clássicoPowerShell moderno
Listar processadoreswmic cpu get Name,NumberOfCoresGet-CimInstance -ClassName Win32_Processor | Select-Object Name,NumberOfCores
Obter número de série do BIOSwmic bios get SerialNumber(Get-CimInstance Win32_BIOS).SerialNumber
Inventário de softwareswmic product get Name,VersionGet-CimInstance Win32_Product | Select Name,Version
Reiniciar PC remotowmic /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

  1. Varredura de repositórios: use Select-String -Pattern '\bwmic(\.exe)?\b' -Path .ps1,.bat,*.cmd -Recurse nos seus shares de scripts.
  2. Análise de logs: consulte o Event Viewer em “Windows Logs > Application” por erros das aplicações após a migração piloto.
  3. 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:

  1. Sincronize previamente \\SERVER\Share\FoD\ com o conteúdo de SSU\FoD\24H2\.
  2. 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.
  3. 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.

Índice