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