Microsoft 29 Ocak 2024 tarihinden itibaren Windows 11güncelleme sürümesi ile Windows Management Instrumentation Command Line (WMIC) özelliğinin varsayılan olarak “devre dışı” olacağı duyuruldu. Eğer uygulamanız WMIC’e bağımlıysa, lütfen bu yazıyı bir kılavuz olarak kullanarak başka bir çözüme geçmeyi düşünün. İşte en güncel bilgiler ve WMIC’yi sorgulamak için PowerShell ve programlama yöntemleri.
WMIC Nedir?
WMIC, Windows Management Instrumentation (WMI) için bir komut satırı arayüzü sağlayan bir yardımcı programdır. Mevcut shell ve yardımcı program komutları ile uyumludur.
WMIC Deprecation Geçmişi
Deprecation (kullanım dışı) terimi, bir özelliğin veya işlevin artık aktif olarak geliştirilmediği ve gelecekteki sürümlerinde kaldırılabileceği ürün yaşam döngüsündeki aşamayı tanımlamak için Microsoft’ta kullanılan bir terimdir. Deprecation bildirimi birkaç ay veya yıl sürebilir. Kaldırıldıktan sonra, özellik veya yetenek artık çalışmaz.
Windows Management Instrumentation Command Line (WMIC), 2016 yılında kullanımdan kaldırılmıştır.
WMIC Neden Kaldırıldı?
Windows Management Instrumentation Command Line (WMIC) aracının yerini Windows PowerShell aldı. Microsoft, son birkaç yılda PowerShell’e büyük yatırımlar yaparak yeni ve gelişmiş araçlarla WMI sorgularını daha etkili hale getirdi. Eski bir özelliği kaldırmak, karmaşıklığı azaltarak güvenliği artırır ve gelecekteki Windows sürümlerinde tamamen ortadan kaldırılacaktır.
Eğer Uygulamam WMIC’ye Bağımlıysa Ne Yapmalıyım?
WMIC’ye bağımlı uygulamalarınız için PowerShell veya programlı sorgular gibi alternatif çözümleri kullanın.
PowerShell Desteği
Varsayılan olarak PowerShell, Windows Management Instrumentation (WMI) ile çalışmak için cmdlet’leri içerir. PowerShell’de, herhangi bir ek yazılım veya modül yüklemenize gerek kalmadan çeşitli yerel WMI cmdlet’leri bulunmaktadır. Aşağıda, WMIC sorgusunu bir WMI PowerShell cmdlet’i ile nasıl değiştirebileceğiniz gösterilmekstedi.
WMIC:
vbnet
Wmic /namespace:\\>namespace< PATH >Class< Get >Attribute1, Attribute2, … Attribute n<
PowerShell:
arduino
Get-CIMInstance -namespace ' >namespace< ' -query 'select * from >Class<' | ft >Attribute1, Attribute2, … Attribute n<
Alternatif olarak, PowerShell komutunu doğrudan komut istemcisinden çalıştırabilirsiniz.
mathematica
C:\Windows\System32> powershell -c "Get_CIMInstance -query 'select * from <Class>' | ft <Attribute1, Attribute 2, … Attribute n>"
WMI’yi Programlı Kullanma Yöntemleri
PowerShell ve wbemtool.exe gibi diğer araçların yanı sıra, WMI ile erişim sağlamak için COM API’larını kullanabilirsiniz. Özellikle, C++, .Net, VBScript gibi desteklenen dillerde betikler ve programlar yazabilirsiniz.