27Aug
WMI ve yeni kardeşi CIM, ortamınızdaki Windows makinelerini yönetmek için kullanılabilir. Ama aralarındaki farkı biliyor musun? Bir baktığımızda bize katılın.
Serideki önceki makaleleri okuduğunuzdan emin olun:
- Windows'u PowerShell ile Otomatikleştirme Nasıl
- 'yi Öğrenin PowerShell'de Cmdlet Kullanmayı Öğrenin
- PowerShell'de Nesneleri Nasıl Kullanacağınızı Öğrenin
- PowerShell'de Biçimlendirme, Filtreleme ve Karşılaştırmayı Öğrenme
- Uzaklaştırmayı Kullanmayı öğreninPowerShell
Ve serinin geri kalanı için bütün hafta boyunca izlemeye devam edin.
Giriş
WMI, Windows Yönetim Gereçleri anlamına gelir."Enstrümantasyon" sözcüğü, WMI aracınızın bilgisayarınızın iç durumu hakkında bilgi edinmenizi sağladığı gerçeğine işaret eder; tıpkı aracınızdaki gösterge tablosu araçları araçlarınızın dahili bileşenleri durumu hakkında bilgi alır gibi görünür.
WMI, makinenizde yönetilebilecek bileşenleri temsil eden sınıfları içeren bir depodan oluşur. Bunun anlamı, WMI'nin bir Win32_Battery sınıfına sahip olması, makinenizin bir pil içerdiği anlamına gelmez. Daha sonra bu sınıflar yerel olarak veya WQL adı verilen SQL'e çok benzer bir sorgu dili kullanarak bir ağda bilgi için sorgulanabilir. Bununla birlikte, WMI'nin iletişim kurmayı seçtikleri bağlantı noktaları ile bazı deli şeyler yapan RPC'ye( Uzaktan Yordam Çağrıları) dayandığı gerçeğinden dolayı, genellikle çok güvenilmez olduğu bilinmektedir.
Windows 8 ve Server 2012'den başlayarak, WMI kısa sürede Ortak Bilgi Modeli veya CIM'in lehine aşamalı olarak kullanılmaktadır. WMI ve CIM arasındaki tek fark kullandıkları aktarım protokolleridir. WMI uzaktan yordam çağrıları kullanarak sorgular gerçekleştirirken, CIM büyük bir fark yaratacak HTTP kullanır. Arka planda yine aynı bilgi havuzuyla konuşuyorlar.
WMI
'yi Kullanma Kullanabileceğiniz bilgileri WMI aracılığıyla keşfetmenin en hızlı ve en kolay yolu herhangi bir ücretsiz WMI Nesne Tarayıcısı'nın bir kopyasını almaktır. Bunu seviyoruz.İndirildikten sonra, çalıştırın ve WMI Sınıflarına göz atmak için grafik arayüze sahip olursunuz.
Bir bilgisayarın disk yapılandırması hakkında bir şeyler öğrenmek isterseniz, bir arama kutusu açmak için Ctrl + F klavye kombinasyonuna basın, ardından "logicaldisk" yazın ve enter tuşuna basın.
Bu derhal sizi Win32_LogicalDisk sınıfına götürür.
Uygulamanın alt yarısında, sınıfın iki örneğine sahip olduğumuzu görebilirsiniz.
Aradığımız sınıfı bulduktan sonra, PowerShell'den sorgulamaya devam etmek doğru olur.
Get-WmiObject -Query "SELECT * FROM Win32_LogicalDisk"
Bu söz dizimini bir süredir insanlarla birlikte görmedim, bu günlerde yeni parametreli sözdizimini kullanmayı tercih ettim.
Get-WmiObject -Class Win32_LogicalDisk
Bilgileri ağınızdaki başka bir bilgisayardan almak istiyorsanız, ComputerName parametresini basitçe kullanabilirsiniz.
Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper - Yetkili makaralardan administrator
CIM
kullanma CIM'in yalnızca Windows 8 ve Server 2012'de kullanılabildiğini göz önüne alındığında, bu yolda ilerlemenin kesinlikle bir yoludur.
Get-CimInstance -ClassName Win32_LogicalDisk
Get-CimInstance kullanıldığında -ClassName parametresi için de sekme işlemi tamamlanmış olup, Microsoft'un çabalarının odaklandığı budur.
Aslında WMI, Microsoft içinde tamamen ayrı bir ekip tarafından geliştirildi, ancak daha sonra PowerShell'den sorumlu kişiler tarafından devralındı.WMI'nin geride bıraktığı karışıklığın temizlenmesi çok zor olacağını fark edenlerdendi. Durumu düzeltmek için, kaputun altında WMI ve CIM kullanan sarmalayıcı cmdlet'leri yazarak WMI ve CIM'i daha kullanılabilir hale getirmeye çalışıyorlar. Bir cmdlet'in bir sarmalayıcı olup olmadığını denetlemenin tek yolu dokümantasyona bakmaktır.Örneğin, Get-Düzeltme cmdlet'i, belgelerde görüldüğü gibi Win32_QuickFixEngineering sınıfının bir sarmalayıcıdır.
Bu, bir WMI Sorgusu yerine Get-HotFix cmdlet'i kullanarak uzaktaki makinelerde düzeltmeleri alabileceğiniz anlamına gelir.
Get-HotFix -ComputerName localhost
Yani orada var.Özel bir cmdlet varsa, her zaman kullanmak istediğinizi ve bir cmdlet'in bulunmaması durumunda CIM tarafından takip edileceğini unutmayın. Son olarak, her şey başarısız olursa veya çevrenizde daha eski makineler varsa, WMI'yi kullanmak isteyeceksiniz. Bu sefer sahip olduğum tek şey bu. Yarın daha fazla PowerShell eğlencesi için görüşürüz.