Mendapatkan objek WMI dengan Get-CimInstance
Sampel ini hanya berlaku untuk platform Windows.
Instrumentasi Manajemen Windows (WMI) adalah teknologi inti untuk administrasi sistem Windows karena mengekspos berbagai informasi dengan cara yang seragam. Karena berapa banyak WMI yang memungkinkan, cmdlet PowerShell untuk mengakses objek WMI, Get-CimInstance
, adalah salah satu yang paling berguna untuk melakukan pekerjaan nyata. Kita akan membahas cara menggunakan cmdlet CIM untuk mengakses objek WMI dan kemudian cara menggunakan objek WMI untuk melakukan hal-hal tertentu.
Mencantumkan kelas WMI
Masalah pertama yang dihadapi sebagian besar pengguna WMI adalah mencoba mencari tahu apa yang dapat dilakukan dengan WMI. Kelas WMI menjelaskan sumber daya yang dapat dikelola. Ada ratusan kelas WMI, beberapa di antaranya berisi puluhan properti.
Get-CimClass
mengatasi masalah ini dengan membuat WMI dapat ditemukan. Anda bisa mendapatkan daftar kelas WMI yang tersedia di komputer lokal dengan mengetik:
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
...
Anda dapat mengambil informasi yang sama dari komputer jarak jauh menggunakan parameter ComputerName , menentukan nama komputer atau alamat IP:
Get-CimClass -Namespace root/CIMV2 -ComputerName 192.168.1.29
Daftar kelas yang dikembalikan oleh komputer jarak jauh dapat bervariasi karena sistem operasi tertentu yang dijalankan komputer dan ekstensi WMI tertentu ditambahkan oleh aplikasi yang diinstal.
Catatan
Saat menggunakan cmdlet CIM untuk menyambungkan ke komputer jarak jauh, komputer jarak jauh harus menjalankan WMI dan akun yang Anda gunakan harus berada di grup Administrator lokal pada komputer jarak jauh. Sistem jarak jauh tidak perlu menginstal PowerShell. Ini memungkinkan Anda mengelola sistem operasi yang tidak menjalankan PowerShell, tetapi memiliki WMI yang tersedia.
Menampilkan detail kelas WMI
Jika Anda sudah mengetahui nama kelas WMI, Anda dapat menggunakannya untuk mendapatkan informasi segera. Misalnya, salah satu kelas WMI yang umum digunakan untuk mengambil informasi tentang komputer Win32_OperatingSystem.
Get-CimInstance -Class Win32_OperatingSystem
SystemDirectory Organization BuildNumber RegisteredUser SerialNumber Version
--------------- ------------ ----------- -------------- ------------ -------
C:\WINDOWS\system32 Microsoft 22621 USER1 00330-80000-00000-AA175 10.0.22621
Meskipun kita menampilkan semua parameter, perintah dapat diekspresikan dengan cara yang lebih tepat.
Parameter ComputerName tidak diperlukan saat menyambungkan ke sistem lokal. Kami menunjukkannya untuk menunjukkan kasus yang paling umum dan mengingatkan Anda tentang parameter . Namespace default ke root/CIMV2
, dan juga dapat dihilangkan. Akhirnya, sebagian besar cmdlet memungkinkan Anda untuk menghilangkan nama parameter umum. Dengan Get-CimInstance
, jika tidak ada nama yang ditentukan untuk parameter pertama, PowerShell memperlakukannya sebagai parameter Kelas . Ini berarti perintah terakhir bisa saja dikeluarkan dengan mengetik:
Get-CimInstance Win32_OperatingSystem
Kelas Win32_OperatingSystem memiliki lebih banyak properti daripada yang ditampilkan di sini. Anda dapat menggunakan Get-Member untuk melihat semua properti. Properti kelas WMI tersedia secara otomatis seperti properti objek lainnya:
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 int16 CurrentTimeZone {get;}
DataExecutionPrevention_32BitApplications Property bool DataExecutionPrevention_32BitApplications {get;}
DataExecutionPrevention_Available Property bool DataExecutionPrevention_Available {get;}
...
Menampilkan properti non-default dengan cmdlet Format
Jika Anda ingin informasi terkandung dalam kelas Win32_OperatingSystem yang tidak ditampilkan secara default, Anda dapat menampilkannya dengan menggunakan cmdlet Format . Misalnya, jika Anda ingin menampilkan data memori yang tersedia, ketik:
Get-CimInstance -Class Win32_OperatingSystem | Format-Table -Property TotalVirtualMemorySize, TotalVisibleMemorySize, FreePhysicalMemory, FreeVirtualMemory, FreeSpaceInPagingFiles
TotalVirtualMemorySize TotalVisibleMemorySize FreePhysicalMemory FreeVirtualMemory FreeSpaceInPagingFiles
---------------------- ---------------------- ------------------ ----------------- ----------------------
41787920 16622096 9537952 33071884 25056628
Catatan
Kartubebas bekerja dengan nama properti di Format-Table
, sehingga elemen alur akhir dapat dikurangi menjadi Format-Table -Property Total*Memory*, Free*
Data memori mungkin lebih mudah dibaca jika Anda memformatnya sebagai daftar dengan mengetik:
Get-CimInstance -Class Win32_OperatingSystem | Format-List Total*Memory*, Free*
TotalVirtualMemorySize : 41787920
TotalVisibleMemorySize : 16622096
FreePhysicalMemory : 9365296
FreeSpaceInPagingFiles : 25042952
FreeVirtualMemory : 33013484
Name : Microsoft Windows 11 Pro|C:\Windows|\Device\Harddisk0\Partition2
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk