WMI nesnelerini alma (Get-CimInstance)

WMI nesnelerini alma (Get-CimInstance)

Windows yönetim araçları (wmı), Windows sistem yönetimi için temel bir teknolojidir ve çok çeşitli bilgileri tek bir şekilde kullanıma sunar. WMI nesnelerine ne kadar çok işlem yapılacağından, WMI nesnelerine erişim için PowerShell cmdlet 'i, Get-CimInstance gerçek iş yapmak için en faydalı bir seçenektir. WMI nesnelerine erişmek için Cimcmdlet 'Lerinin nasıl kullanılacağını ve ardından belirli şeyleri yapmak için WMI nesnelerini nasıl kullanacağınızı tartışacağız.

WMI sınıflarını listeleme

Çoğu WMI kullanıcının karşılaştığı ilk sorun, WMI ile neler yapılabileceğini bulmaya çalışıyor. WMI sınıfları, yönetilebilecek kaynakları anlatmaktadır. Bazıları düzinelerce özellikler içeren yüzlerce WMI sınıfı vardır.

Get-CimClass WMI bulunabilir yaparak bu sorunu giderir. Yerel bilgisayarda bulunan WMI sınıflarının bir listesini şunu yazarak edinebilirsiniz:

Get-CimClass -Namespace root/CIMV2 |
  Where-Object CimClassName -like Win32* |
    Select-Object CimClassName
CimClassName
------------
Win32_DeviceChangeEvent
Win32_SystemConfigurationChangeEvent
Win32_VolumeChangeEvent
Win32_SystemTrace
Win32_ProcessTrace
Win32_ProcessStartTrace
Win32_ProcessStopTrace
Win32_ThreadTrace
Win32_ThreadStartTrace
Win32_ThreadStopTrace
...

Bir bilgisayar adı veya IP adresi belirterek, uzak bir bilgisayardan aynı bilgileri ComputerName parametresini kullanarak alabilirsiniz:

Get-CimClass -Namespace root/CIMV2 -ComputerName 192.168.1.29

Uzak bilgisayarlar tarafından döndürülen sınıf listesi, bilgisayarın çalıştırdığı belirli işletim sistemi ve yüklü uygulamalar tarafından eklenen belirli WMI uzantıları nedeniyle farklılık gösterebilir.

Not

Uzak bir bilgisayara bağlanmak için CıM cmdlet 'leri kullanılırken, uzak bilgisayarın WMI çalıştırması ve kullandığınız hesabın, uzak bilgisayardaki yerel Yöneticiler grubunda olması gerekir. Uzak sistemin PowerShell 'in yüklü olması gerekmez. Bu, PowerShell çalıştırmayan işletim sistemlerini yönetmenizi sağlar, ancak WMI kullanılabilir.

WMI sınıfı ayrıntılarını görüntüleme

Zaten bir WMI sınıfının adını biliyorsanız, bilgileri hemen almak için kullanabilirsiniz. Örneğin, bir bilgisayar hakkındaki bilgileri almak için yaygın olarak kullanılan WMI sınıflarından biri Win32_OperatingSystem.

Get-CimInstance -Class Win32_OperatingSystem
SystemDirectory     Organization BuildNumber RegisteredUser SerialNumber            Version
---------------     ------------ ----------- -------------- ------------            -------
C:\WINDOWS\system32 Microsoft    18362       USER1          00330-80000-00000-AA175 10.0.18362

Tüm parametreleri gösterdiğimiz halde, komut daha kısa bir şekilde ifade edilebilir. Yerel sisteme bağlanırken ComputerName parametresi gerekli değildir. En genel durumu göstermek ve bu parametreyi size hatırlatmak için gösteririz. Ad alanı varsayılan olarak olur root/CIMV2 ve de atlanabilir. Son olarak, çoğu cmdlet ortak parametrelerin adını atlamanızı sağlar. İle Get-CimInstance , ilk parametre için bir ad belirtilmemişse, PowerShell bunu sınıf parametresi olarak değerlendirir. Bu, son komutun şu yazarak verildiği anlamına gelir:

Get-CimInstance Win32_OperatingSystem

Win32_OperatingSystem sınıfı, burada görüntülenenlerden çok daha fazla özelliğe sahiptir. Tüm özellikleri görmek için Get-Member kullanabilirsiniz. WMI sınıfının özellikleri diğer nesne özellikleri gibi otomatik olarak kullanılabilir:

Get-CimInstance -Class Win32_OperatingSystem | Get-Member -MemberType Property
   TypeName: Microsoft.Management.Infrastructure.CimInstance#root/cimv2/Win32_OperatingSystem
Name                                      MemberType Definition
----                                      ---------- ----------
BootDevice                                Property   string BootDevice {get;}
BuildNumber                               Property   string BuildNumber {get;}
BuildType                                 Property   string BuildType {get;}
Caption                                   Property   string Caption {get;}
CodeSet                                   Property   string CodeSet {get;}
CountryCode                               Property   string CountryCode {get;}
CreationClassName                         Property   string CreationClassName {get;}
CSCreationClassName                       Property   string CSCreationClassName {get;}
CSDVersion                                Property   string CSDVersion {get;}
CSName                                    Property   string CSName {get;}
CurrentTimeZone                           Property   short CurrentTimeZone {get;}
DataExecutionPrevention_32BitApplications Property   bool DataExecutionPrevention_32BitApplications {get;}
DataExecutionPrevention_Available         Property   bool DataExecutionPrevention_Available {get;}
...

Varsayılan olmayan özellikleri Biçim cmdlet 'Leriyle görüntüleme

Varsayılan olarak görüntülenmeyen Win32_OperatingSystem sınıfında yer alan bilgileri Istiyorsanız, Biçim cmdlet 'lerini kullanarak görüntüleyebilirsiniz. Örneğin, kullanılabilir bellek verilerini göstermek istiyorsanız şunu yazın:

Get-CimInstance -Class Win32_OperatingSystem |
  Format-Table -Property TotalVirtualMemorySize, TotalVisibleMemorySize,
    FreePhysicalMemory, FreeVirtualMemory, FreeSpaceInPagingFiles
TotalVirtualMemorySize TotalVisibleMemorySize FreePhysicalMemory FreeVirtualMemory FreeSpaceInPagingFiles
---------------------- ---------------------- ------------------ ----------------- ----------------------
              33449088               16671872            6451868          18424496               16285032

Not

Joker karakterler ' de özellik adlarıyla çalışır Format-Table , bu nedenle son işlem hattı öğesi şu şekilde azaltılabilir Format-Table -Property Total*Memory*, Free*

Bellek verileri, şunu yazarak bir liste olarak biçimlendirmeniz durumunda daha okunabilir olabilir:

Get-CimInstance -Class Win32_OperatingSystem | Format-List Total*Memory*, Free*
TotalVirtualMemorySize : 33449088
TotalVisibleMemorySize : 16671872
FreePhysicalMemory     : 6524456
FreeSpaceInPagingFiles : 16285808
FreeVirtualMemory      : 18393668
Name                   : Microsoft Windows 10 Pro|C:\WINDOWS|\Device\Harddisk0\Partition2