Geek School Menggunakan PowerShell untuk Mendapatkan Informasi Komputer
WMI dan abangnya yang lebih baru, CIM, dapat digunakan untuk mengelola mesin Windows di lingkungan Anda. Tapi tahukah Anda perbedaan di antara mereka? Bergabunglah dengan kami saat kami melihatnya.
Pastikan untuk membaca artikel sebelumnya dalam seri ini:
- Pelajari Cara Mengotomatiskan Windows dengan PowerShell
- Belajar Menggunakan Cmdlet di PowerShell
- Mempelajari Cara Menggunakan Objek di PowerShell
- Belajar Memformat, Memfilter, dan Membandingkan di PowerShell
- Belajar Menggunakan Remoting di PowerShell
Dan tetap disini selama sisa seri sepanjang minggu.
pengantar
WMI singkatan dari Instrumentasi Manajemen Windows. Kata "Instrumentasi" mengacu pada kenyataan bahwa WMI memungkinkan Anda untuk mendapatkan informasi tentang kondisi internal komputer Anda, seperti halnya instrumen dasbor di mobil Anda dapat mengambil dan menampilkan informasi tentang keadaan komponen internal mobil Anda.
WMI terdiri dari repositori yang berisi kelas yang mewakili komponen yang bisa dikelola di dalam mesin Anda. Maksud kami hanya karena WMI memiliki kelas Win32_Battery tidak berarti bahwa mesin Anda mengandung baterai. Kelas-kelas ini kemudian dapat ditanyakan untuk informasi secara lokal atau bahkan di seluruh jaringan menggunakan bahasa query yang sangat mirip dengan SQL yang disebut WQL. Namun, WMI dikenal sangat tidak dapat diandalkan, sebagian besar karena fakta bahwa ini didasarkan pada RPC (Remote Procedure Calls), yang melakukan beberapa hal gila dengan port yang mereka pilih untuk berkomunikasi.
Dimulai dengan Windows 8 dan Server 2012, WMI secara bertahap dihapus mendukung Common Information Model atau CIM. Satu-satunya perbedaan antara WMI dan CIM adalah protokol transport yang mereka gunakan. Sementara WMI melakukan kueri menggunakan Panggilan Prosedur Jarak Jauh, CIM menggunakan HTTP, yang tampaknya membuat perbedaan besar. Di backend mereka masih berbicara ke gudang informasi yang sama.
Menggunakan WMI
Cara tercepat dan termudah untuk mengeksplorasi informasi yang tersedia untuk Anda melalui WMI adalah dengan mengambil salinan Peramban Objek WMI gratis. Kami suka yang ini. Setelah diunduh, jalankan dan Anda akan memiliki antarmuka grafis untuk menelusuri Kelas WMI.
Jika Anda ingin mengetahui sesuatu tentang konfigurasi disk komputer, tekan kombinasi keyboard Ctrl + F untuk memunculkan kotak pencarian, kemudian ketik "logicaldisk" dan tekan enter.
Segera ini akan membawa Anda ke kelas Win32_LogicalDisk.
Di bagian bawah aplikasi, Anda dapat melihat kami memiliki dua instance kelas.
Setelah kita memiliki kelas yang kita cari, menanyakannya dari PowerShell langsung.
Get-WmiObject -Query “SELECT * FROM Win32_LogicalDisk”
Saya belum melihat sintaks itu untuk sementara waktu dengan orang-orang hari ini lebih memilih untuk menggunakan sintaks parameterized baru.
Dapatkan-WmiObject -Class Win32_LogicalDisk
Jika Anda ingin mendapatkan informasi dari komputer lain di jaringan Anda, Anda cukup menggunakan parameter ComputerName.
Get-WmiObject -Class Win32_LogicalDisk -ComputerName Viper -Credential viper \ administrator
Menggunakan CIM
Perlu diingat bahwa CIM hanya tersedia di Windows 8 dan Server 2012, bergerak maju ini jelas merupakan cara yang harus dilakukan.
Dapatkan-CimInstance -ClassName Win32_LogicalDisk
Ada juga penyelesaian tab untuk parameter -ClassName saat menggunakan Get-CimInstance, yang menunjukkan bahwa untuk maju ke sinilah upaya Microsoft akan difokuskan.
Faktanya, WMI dikembangkan oleh tim yang sepenuhnya terpisah dalam Microsoft, tetapi kemudian diambil alih oleh orang-orang yang bertanggung jawab atas PowerShell. Mereka adalah orang-orang yang memperhatikan bahwa akan sangat sulit untuk membersihkan kekacauan yang ditinggalkan WMI. Dalam upaya untuk memperbaiki situasi, mereka berusaha membuat WMI dan CIM lebih tersedia dengan menulis cmdlet pembungkus yang menggunakan WMI dan CIM di bawah tenda. Satu-satunya cara untuk memeriksa apakah cmdlet adalah pembungkus adalah dengan melihat dokumentasi. Misalnya, cmdlet Get-Hotfix adalah pembungkus untuk kelas Win32_QuickFixEngineering, seperti yang terlihat dalam dokumentasi.
Itu berarti Anda bisa mendapatkan perbaikan terbaru pada mesin jarak jauh menggunakan cmdlet Get-HotFix alih-alih Kueri WMI.
Dapatkan-HotFix -ComputerName localhost
Jadi begitulah. Hanya ingat bahwa jika ada cmdlet khusus Anda akan selalu ingin menggunakannya, ditindaklanjuti dengan CIM seandainya cmdlet tidak ada. Akhirnya, jika semuanya gagal, atau Anda memiliki mesin yang lebih tua di lingkungan Anda, Anda akan ingin menggunakan WMI. Hanya itu yang saya miliki untuk saat ini. Sampai jumpa besok untuk kesenangan PowerShell lebih lanjut.