Bilgisayar Bilgilerini Almak İçin PowerShell'i Kullanma Geek Okulu
WMI ve yeni kardeşi CIM, ortamınızdaki Windows makinelerini yönetmek için kullanılabilir. Ama aralarındaki farkı biliyor musun? Bir göz atarken bize katılın.
Serideki önceki makaleleri okuduğunuzdan emin olun:
- PowerShell ile Windows'u Nasıl Otomatikleştireceğinizi Öğrenin
- PowerShell'de Cmdlet'leri Kullanmayı Öğrenme
- PowerShell'de Nesnelerin Nasıl Kullanılacağını Öğrenme
- PowerShell'de Biçimlendirme, Filtreleme ve Karşılaştırmayı Öğrenme
- PowerShell'de Uzaktan Kullanmayı Öğrenin
Ve tüm hafta boyunca dizinin geri kalanı için bizi izlemeye devam edin.
Giriş
WMI, Windows Yönetim Araçları anlamına gelir. “Enstrümantasyon” kelimesi, WMI’nın, bilgisayarınızın iç durumu hakkında bilgi edinmenize olanak sağladığı anlamına gelir; tıpkı arabanızdaki gösterge paneli enstrümanları, araçlarınızın dahili bileşenlerinin durumu hakkında bilgi alabilir ve görüntüleyebilir.
WMI, makinenizde yönetilebilecek bileşenleri temsil eden sınıfları içeren bir depodan oluşur. Bununla demek istediğimiz sadece WMI'da bir Win32_Battery sınıfı olması, makinenizin bir batarya içerdiği anlamına gelmez. Bu sınıflar daha sonra yerel olarak veya hatta WQL denilen SQL'e çok benzeyen bir sorgu dili kullanarak bir ağ üzerinden bilgi için sorgulanabilir. Bununla birlikte, WMI'nın, iletişim kurmayı seçtikleri portlarla çılgınca şeyler yapan RPC'ye (Uzaktan Prosedür Çağrıları) dayanması nedeniyle çok güvenilmez olduğu bilinmektedir..
Windows 8 ve Server 2012 ile başlayarak, WMI, Kısaca Ortak Bilgi Modeli veya CIM'in lehine kaldırılıyor. WMI ve CIM arasındaki tek fark, kullandıkları taşıma protokolleridir. WMI, Uzaktan Yordam Çağrıları kullanarak sorgular gerçekleştirirken, CIM, büyük bir fark yaratıyor gibi görünen HTTP'yi kullanır. Arka uçta hala aynı bilgi deposuyla konuşuyorlar.
WMI Kullanımı
WMI ile kullanabileceğiniz bilgileri 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. Bir kere indirildikten sonra ateşleyin ve WMI Sınıflarına göz atmak için bir grafik arayüzünüz olacak..
Bilgisayarın disk yapılandırması hakkında bir şey öğrenmek istiyorsanız, bir arama kutusu açmak için Ctrl + F klavye kombinasyonuna basın, sonra "mantıksal disk" yazın ve enter tuşuna basın.
Hemen bu sizi Win32_LogicalDisk sınıfına götürür.
Uygulamanın alt yarısında, sınıfın iki örneğinin olduğunu görebilirsiniz..
Aradığımız sınıfa sahip olduktan sonra, onu PowerShell'den sorgulamak oldukça basittir..
Get-WmiObject -Query “Win32_LogicalDisk'ten SELECT *
Bu sözdizimini bir süredir görmedim, bugünlerde yeni parametreli sözdizimini kullanmayı tercih edenlerle.
Get-WmiObject -Class Win32_LogicalDisk
Bilgileri ağınızdaki başka bir bilgisayardan almak istiyorsanız, ComputerName parametresini kullanabilirsiniz..
Get-WmiObject -Sınıf Win32_LogicalDisk -BilgisayarAdı Viper -Açıklayıcı engerek \ yönetici
CIM kullanımı
CIM’in yalnızca Windows 8 ve Server 2012’de kullanılabileceğini aklınızda bulundurun..
Get-CimInstance -ClassName Win32_LogicalDisk
Get-CimInstance kullanırken -ClassName parametresi için sekme tamamlama var, bu ileriye doğru Microsoft'un çabalarının odaklanacağı yer olduğunu gösteriyor.
Aslında, WMI Microsoft'ta tamamen ayrı bir ekip tarafından geliştirildi, ancak daha sonra PowerShell'den sorumlu kişiler tarafından devralındı. Geride kalan WMI dağınıklıklarını temizlemenin çok zor olacağını farkedenlerdi. Durumu düzeltmek amacıyla, kaputun altına WMI ve CIM kullanan sarmalayıcı cmdlet'leri yazarak WMI ve CIM'i daha kullanılabilir hale getirmeye çalışıyorlar. Bir cmdlet'in sarmalayıcı olup olmadığını kontrol etmenin tek yolu belgelere bakmaktır. Örneğin, Get-Hotfix cmdlet'i, belgelerde görüldüğü gibi Win32_QuickFixEngineering sınıfı için bir sarıcıdır..
Bu, WMI Query yerine Get-HotFix cmdlet'ini kullanarak uzaktaki makinelerde düzeltmeleri alabileceğiniz anlamına gelir.
Get-HotFix -BilgisayarAdı localhost
Yani orada var. Sadece özel bir cmdlet varsa, daima kullanmak isteyeceğinizi, CIM tarafından takip edilen bir cmdlet'in olmaması gerektiğine dikkat edin. Son olarak, diğerleri başarısız olursa veya ortamınızda daha eski makineler varsa, WMI kullanmak isteyeceksiniz. Bu sefer sahip olduğum tek şey bu. PowerShell eğlencesi için yarın görüşmek üzere.