oslier.tech
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
-
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
-
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
-
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
-
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/
-
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-
-
Microsoft Learn. "Working with WMI - PowerShell". Disponível em: https://learn.microsoft.com/en-us/powershell/scripting/learn/ps101/07-working-with-wmi
-
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:
.