WMIC em extinção: não entre em pânico! Guia completo de migração para PowerShell

Se você é um administrador de sistema ou desenvolvedor que utiliza a ferramenta WMIC (Windows Management Instrumentation Command-line), é hora de se preparar para uma mudança importante. A Microsoft está removendo gradualmente o WMIC das versões do Windows 11, sendo que a partir da versão 25H2 a ferramenta já não está incluída por padrão e precisa ser instalada manualmente como uma Feature on Demand (FoD).

Mas calma! Não há motivo para pânico. Esta mudança representa uma evolução natural das ferramentas de gerenciamento do Windows, e a migração para alternativas mais modernas traz benefícios significativos.

Por Que a Microsoft Está Descontinuando o WMIC?

Motivos Técnicos da Descontinuação

A Microsoft investiu pesadamente no PowerShell nos últimos anos, tornando-o a ferramenta padrão para automação e gerenciamento de sistemas Windows. Os principais motivos para a descontinuação do WMIC incluem:

1. Modernização da Plataforma
O WMIC é uma ferramenta legada que não acompanhou a evolução das práticas modernas de desenvolvimento e segurança.

2. Melhor Integração com Ecossistema
O Windows não está perdendo funcionalidade — você ainda pode consultar e gerenciar tudo que podia antes, apenas com ferramentas diferentes.

3. Segurança Aprimorada
Ao migrar do WMI para CIM, você aumenta significativamente sua segurança.

4. Manutenção e Suporte
Concentrar esforços em uma única ferramenta (PowerShell) permite melhor manutenção e recursos mais robustos.

Cronograma da Descontinuação

A remoção do WMIC está ocorrendo em etapas:

  • Windows 10 21H1: WMIC marcado como depreciado
  • Janeiro 2024: WMIC desabilitado por padrão no Windows 11 Insider
  • Windows 11 25H2: WMIC removido após atualizações
  • Situação Atual: WMIC disponível como Feature on Demand desde 2022

Alternativas Modernas ao WMIC

1. PowerShell com Get-CimInstance

O PowerShell é a principal alternativa recomendada pela Microsoft. A partir do PowerShell 3.0, Get-CimInstance substitui Get-WmiObject.

2. APIs .NET

Para desenvolvedores, as APIs .NET oferecem acesso direto às funcionalidades WMI com melhor performance.

3. Windows Admin Center

Para interface gráfica, o Windows Admin Center fornece funcionalidades de gerenciamento modernas.

Exemplos Práticos de Migração

Exemplo 1: Informações do Sistema Operacional

WMIC (Antigo):

wmic os get Caption,Version,BuildNumber

PowerShell (Novo):

Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object Caption, Version, BuildNumber

Exemplo 2: Lista de Processos

WMIC (Antigo):

wmic process get Name,ProcessId,PageFileUsage

PowerShell (Novo):

Get-CimInstance -ClassName Win32_Process | Select-Object Name, ProcessId, PageFileUsage

Exemplo 3: Informações de Hardware

WMIC (Antigo):

wmic computersystem get Manufacturer,Model,TotalPhysicalMemory

PowerShell (Novo):

Get-CimInstance -ClassName Win32_ComputerSystem | Select-Object Manufacturer, Model, TotalPhysicalMemory

Exemplo 4: Serviços do Windows

WMIC (Antigo):

wmic service where "startmode='Auto'" get Name,State

PowerShell (Novo):

Get-CimInstance -ClassName Win32_Service | Where-Object {$_.StartMode -eq 'Auto'} | Select-Object Name, State

Exemplo 5: Informações de Disco

WMIC (Antigo):

wmic logicaldisk get Size,FreeSpace,Caption

PowerShell (Novo):

Get-CimInstance -ClassName Win32_LogicalDisk | Select-Object Caption, Size, FreeSpace

Exemplo 6: Consultas Remotas

WMIC (Antigo):

wmic /node:SERVER01 os get Caption

PowerShell (Novo):

# Método 1: Usando ComputerName
Get-CimInstance -ClassName Win32_OperatingSystem -ComputerName SERVER01 | Select-Object Caption

# Método 2: Usando CimSession (Recomendado)
$session = New-CimSession -ComputerName SERVER01 -Credential (Get-Credential)
Get-CimInstance -ClassName Win32_OperatingSystem -CimSession $session | Select-Object Caption
Remove-CimSession $session

Vantagens da Migração para PowerShell

1. Melhor Integração

O PowerShell se integra perfeitamente com outras ferramentas e scripts do ecossistema Windows.

2. Segurança Aprimorada

CimInstance oferece segurança muito superior ao WMI tradicional.

3. Objetos Estruturados

Diferente do WMIC que retorna texto, o PowerShell retorna objetos que podem ser facilmente manipulados.

4. Melhor Tratamento de Erros

O PowerShell oferece mecanismos robustos para tratamento de exceções.

5. Extensibilidade

Fácil integração com outros cmdlets e funções PowerShell.

Guia de Migração Passo a Passo

Passo 1: Inventário dos Scripts Atuais

  • Identifique todos os scripts que usam WMIC
  • Documente as funcionalidades específicas utilizadas
  • Priorize por criticidade e frequência de uso

Passo 2: Conversão Gradual

  • Comece com scripts menos críticos
  • Teste extensivamente em ambiente de desenvolvimento
  • A migração do WMI para CIM é geralmente tão simples quanto trocar Get-WMIObject por Get-CIMInstance

Passo 3: Validação e Testes

  • Compare resultados entre WMIC e PowerShell
  • Teste cenários de erro
  • Valide performance

Passo 4: Implementação

  • Implemente em ambiente de produção gradualmente
  • Mantenha scripts WMIC como backup temporário
  • Monitore resultados

Solução Temporária: Instalando WMIC como Feature on Demand

Se você precisar de mais tempo para migrar, WMIC está disponível como Feature on Demand no Windows 11 desde 2022:

# Como administrador
DISM /Online /Add-Capability /CapabilityName:WMIC~~~~

Ou via PowerShell:

Add-WindowsCapability -Online -Name "WMIC~~~~"

Importante: Esta é apenas uma solução temporária. A migração para PowerShell deve ser priorizada.

Recursos para Aprendizado

Documentação Oficial

Ferramentas Úteis

  • Get-CimClass: Para descobrir classes WMI disponíveis
  • Get-Help: Para documentação detalhada dos cmdlets
  • PowerShell ISE/VSCode: Para desenvolvimento de scripts

Conclusão

A descontinuação do WMIC não deve ser vista como um problema, mas como uma oportunidade de modernizar seus scripts e processos. O PowerShell oferece todas as funcionalidades do WMIC com recursos muito superiores.

A migração, embora requeira esforço inicial, resultará em scripts mais robustos, seguros e maintíveis. Comece a planejar sua migração hoje mesmo, aproveitando os exemplos e diretrizes apresentados neste artigo.

Lembre-se: a tecnologia evolui constantemente, e acompanhar essas mudanças é fundamental para manter a eficiência e segurança dos seus sistemas.

Fontes Utilizadas

  1. Microsoft Support. "Windows Management Instrumentation Command-line (WMIC) removal from Windows". Microsoft Learn. Disponível em: https://support.microsoft.com/en-us/topic/windows-management-instrumentation-command-line-wmic-removal-from-windows-e9e83c7f-4992-477f-ba1d-96f694b8665d

  2. Windows IT Pro Blog. "WMI command line (WMIC) utility deprecation: Next steps". Microsoft Tech Community, 2024. Disponível em: https://techcommunity.microsoft.com/blog/windows-itpro-blog/wmi-command-line-wmic-utility-deprecation-next-steps/4039242

  3. Windows IT Pro Blog. "How to install WMIC Feature on Demand on Windows 11". Microsoft Tech Community, 2024. Disponível em: https://techcommunity.microsoft.com/blog/windows-itpro-blog/how-to-install-wmic-feature-on-demand-on-windows-11/4189530

  4. BleepingComputer. "Microsoft: WMIC will be removed after Windows 11 25H2 upgrade", 2024. Disponível em: https://www.bleepingcomputer.com/news/microsoft/microsoft-wmic-will-be-removed-after-windows-11-25h2-upgrade/

  5. Microsoft Learn. "Getting WMI objects with Get-CimInstance - PowerShell". Disponível em: https://learn.microsoft.com/en-us/powershell/scripting/samples/getting-wmi-objects--get-ciminstance-

  6. Microsoft Learn. "Working with WMI - PowerShell". Disponível em: https://learn.microsoft.com/en-us/powershell/scripting/learn/ps101/07-working-with-wmi

  7. PDQ. "PowerShell guide to Get-CimInstance & Get-WmiObject". Disponível em: https://www.pdq.com/blog/powershell-guide-get-ciminstance-and-get-wmiobject/


Ouça uma análise desse Artigo aqui:

.