Windows Management Instrumentation Alfa Ziqri
[email protected]
Abstrak Tugas-tugas yang bersifat management windows bukanlah sesuatu yang asing lagi bagi seseorang yang berkecimpung di dunia IT (Information and Technology). Tugas-tugas seperti pemantauan kinerja sistem, pemantauan penggunaan sumber daya processor / memory, dan tanggapan terhadap event yang terjadi adalah hal yang lazim bagi seorang sistem administrator. Tetapi cukup disayangkan bila tugas-tugas tersebut hanya bisa dilakukan secara manual. WMI (Windows Management Instrumentation) hadir untuk menjawab tantangan ini. WMI, sebuah core teknologi yang memungkinkan kita untuk melakukan tugas-tugas management windows dengan scripting secara fleksible. Mulai dari hal yang paling sederhana seperti melakukan query untuk melihat proses apa yang sedang bejalan di komputer kita, sampai dengan membuat aplikasi untuk menangani kasus yang telah disebutkan di atas. Kata Kunci: Windows Management Instrumentation
Pendahuluan Bisa kita bayangkan, seorang sistem administrator yang senantiasa harus memperhatikan space harddisk atau performa memory, bila telah melebihi batasan yang telah ditentukan maka administrator harus melakukan aksi tertentu seperti menghapus file yang telah tidak berguna di harddisk, atau memantau kembali proses apa yang telah menghabiskan sumber daya memory yang tinggi. Alangkah baiknya bila tugas-tugas
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
tersebut dapat dikerjakan secara otomatis dengan catatan bisa di-customize secara fleksible dan programatikal..
Pembahasan Pengenalan WMI Tugas-tugas yang bersifat management windows bukanlah sesuatu yang asing lagi bagi seseorang yang berkecimpung di dunia IT (Information and Technology). Tugas-tugas seperti pemantauan kinerja sistem, pemantauan penggunaan sumber daya processor / memory, dan tanggapan terhadap event yang terjadi adalah hal yang lazim bagi seorang sistem administrator. Tetapi cukup disayangkan bila tugas-tugas tersebut hanya bisa dilakukan secara manual.
Bisa kita bayangkan, seorang sistem administrator yang senantiasa harus memperhatikan space harddisk atau performa memory, bila telah melebihi batasan yang telah ditentukan maka administrator harus melakukan aksi tertentu seperti menghapus file yang telah tidak berguna di harddisk, atau memantau kembali proses apa yang telah menghabiskan sumber daya memory yang tinggi. Alangkah baiknya bila tugas-tugas tersebut dapat dikerjakan secara otomatis dengan catatan bisa di-customize secara fleksible dan programatikal.
WMI (Windows Management Instrumentation) hadir untuk menjawab tantangan ini. WMI, sebuah core teknologi yang memungkinkan kita untuk melakukan tugas-tugas management windows dengan scripting secara fleksible. Mulai dari hal yang paling sederhana seperti melakukan query untuk melihat proses apa yang sedang bejalan di komputer kita, sampai dengan membuat aplikasi untuk menangani kasus yang telah disebutkan di atas.
WMI Bukanlah Teknologi Yang Baru
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Sebenarnya WMI sendiri bukanlah sebuah teknologi yang baru. WMI telah tersedia, tanpa perlu di-install pada versi Windows Me, Windows 2000, Windows XP, Windows 2003, dan Windows Vista. Untuk Windows 98 dan Windows NT 4.0, WMI bisa di-download pada link berikut.
WMI adalah sebuah teknologi yang sangat tangguh dan membantu. Sayangnya, sejalan dengan aplikasi LOB (line of business) yang berjalan begitu laju, WMI sudah mulai dilupakan. Bahkan banyak developer yang tidak menyadari keberadaan WMI itu sendiri. Padahal, kemungkinan pekerjaaan mereka sehari-hari dibantu oleh WMI, baik secara langsung maupun secara tidak langsung.
Apa Yang Bisa Kita Lakukan Dengan WMI? WMI menyediakan pendekatan yang konsisten untuk melakukan tugas-tugas yang bersifat management Windows yang kita ketemu sehari-hari dengan programming atau scripting language.
Dengan WMI, kita tidak hanya bisa melakukan tugas-tugas management windows pada komputer lokal, tetapi juga bisa mengelola komputer yang remote (tentunya selama kita punya hak akses terhadap komputer tersebut).
Adapun Beberapa Contoh Tugas-tugas Yang Dapat Dilakukan Dengan WMI : Melakukan query (permintaan data) ke sistem operasi kita untuk mendapatkan sejumlah informasi seperti: pemakaian harddisk, proses yang sedang aktif, mendapatkan nomor serial dari harddisk, mendapatkan sejumlah aplikasi yang telah terinstall di komputer kita,
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
dan lain sebagainya. Menciptakan atau menjalankan sebuah proses atau aplikasi secara scripting / programatik. Misalnya kita dapat membuka sebuah calculator windows (calc.exe) secara programmatik. Membuat schedule atau jadwal untuk menjalankan sebuah proses pada waktu yang telah ditentukan. Mengelola (bahkan, me-restart atau mematikan) komputer lokal ataupun remote. Oleh karena fleksibilitas WMI yang tinggi, kita bisa mengkombinasikan berbagai kemampuannya (seperti yang disebutkan di atas), sehingga dapat menjadi sebuah aplikasi yang sangat membantu. Salah satu contohnya adalah kita ingin membuat sebuah aplikasi yang memonitor pemakaian memory pada komputer kita, bila telah mencapai 3 GB, maka akan terjadi aksi tertentu (misalnya mengirimkan email kepada administrator, mencatat proses-proses yang sedang aktif ke log file, dan lain sebagainya). WMI memungkinkan kita untuk melakukan tugas-tugas tersebut secara custom dan flexible.
Arsitektur WMI Setelah mengerti hal-hal apa yang dapat kita lakukan dengan bantuan WMI, sekarang saatnya kita berlangkah ke depan untuk mengerti arsitektur dari WMI itu sendiri dan memperhatikan bagaimana WMI bekerja. Berikut adalah gambar arsitektur dari WMI.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Seperti yang kita perhatikan, terdapat tiga layer utama: 1. WMI Providers and Managed Objects WMI Provider adalah object COM (Component Object Model) yang memonitor satu atau lebih Managed Objects untuk WMI. Managed Object sendiri adalah komponen logical atau physical seperti hard disk drive, network adapter, database system, OS, dll.
Mirip seperti sebuah driver, sebuah provider membekali WMI dengan data dari sebuah managed object dan mengendali message dari WMI ke managed object. WMI provider terdiri dari sebuah file DLL (Dynamic Link Library) dan sebuah file MOF (Managed Object Format) yang mendefinisikan kelas-kelas untuk provider lain yang mengembalikan data dan melakukan operasi.
2. WMI Infrastructure WMI Infrastructure adalah sebuah komponen pada sistem operasi Microsoft Windows. WMI Infrastructure mempunyai dua bagian yaitu WMI Service (termasuk WMI Core) dan WMI Repository.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
WMI Repository terdiri dari kumpulan-kumpulan namespace WMI seperti root\default, root\cimv2, dan root\subscription.
WMI service bertindak sebagai perantara antara provider, aplikasi management, dan WMI Repository.
3.
WMI Consumer WMI Consumer adalah aplikasi management atau script yang berinteraksi
dengan infrastruktur WMI. Management application tersebut dapat melakukan query, enumerasi data, menjalankan fungsi pada provider, atau mendaftar pada sebuah event.
Implementasi WMI WMI dapat diimplementasikan dengan beberapa cara tergantung kebutuhan dan kondisi:
Command Line Tool (WMIC – WMI Command-line) Dengan WMIC, kita dapat melakukan hal yang berhubungan WMI melalui
console atau command line interface dengan perintah – perintah tertentu. Gambar berikut mengilustrasikan penggunaan WMI melalui WMI Command-line, di mana “process get name” adalah perintah WMIC yang artinya mendapatkan semua nama process yang sedang aktif sekarang.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
VBScript Bentuk lain dari implementasi WMI adalah menggunakan scripting VBScript.
Implementasi VBScript cukup mudah dilakukan. Kita hanya perlu membuat sebuah file berekstensi .vbs dan isi file tersebut dengan VBScript. File tersebut siap dieksekusikan dengan men-double click –nya.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
C++ Implementasi WMI cukup banyak dilakukan pada C++ terutama pada zaman
.NET belum lahir. Dengan C++, developer sangat fleksibel untuk mengetik kode program untuk diintegrasikan dengan WMI.
Bahasa Pemrograman .NET: C# dan VB.NET Seperti yang telah kita ketahui bahwa .NET merupakan pemrograman yang
utama Microsoft pada sekarang ini. Tentunya integrasi WMI dan .NET sangat diharapkan oleh para developer .NET.
Yang menjadi kabar baik adalah WMI dapat berkomunikasi dengan baik dengan .NET. Kita bisa menggunakan bahasa pemrograman.NET untuk mengakses WMI, di mana bahasa pemrograman .NET tersebut sebagai pembungkus yang akan memanggil WMI. Hal ini sangat menguntungkan bagi developer .NET terkadang enggan mempelajari C++.
Pada .NET, semua hal yang berhubungan WMI, dikelola oleh namespace System.Management. 1.: using System; 2: using System.Management; 3: 4: namespace WMI.NET_Demo 5: { 6:
class Program
7:
{
8:
static void Main(string[] args)
9:
{
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
10:
ManagementClass process = new ManagementClass("Win32_Process");
11:
foreach (ManagementObject item in process.GetInstances())
12:
{
13:
Console.WriteLine(item["Name"] + " - " + item["ProcessId"]);
14:
}
15: 16:
Console.ReadKey();
17: 18:
} }
19: } Berikut adalah contoh potongan program yang ditulis dengan bahasa C# untuk mendapatkan proses yang terdapat pada computer kita dengan WMI.
WMI Tools Untuk mempermudah kita dalam proses pengembangan ataupun konfigurasi pada WMI, terdapat sejumlah tools yang bisa membantu kita. Salah satu tools yang sangat signifikan adalah WMI Administrative Tools yang bisa Anda download di sini.
Administrative Tools terdiri dari tool berikut:
WMI CIM Studio Tool ini digunakan untuk melihat atau mengubah class, properties, qualifier, dan instance yang berada dalam sebuah CIM Repository.
WMI Object Browser Tool ini digunakan untuk melihat object, mengubah nilai property dan qualifier, dan menjalankan method.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
WMI Event Registration Tool ini digunakan untuk mengkonfigurasi event customer yang permanen, membuat atau melihat instance dari event customer.
WMI Event Viewer Tool ini berfungsi untuk menampilkan event untuk semua instance dari consumer yang terdaftar.
Penutup Windows Management Instrumentation menawarkan pendekatan yang flexible dan programatik sehingga memungkinkan kita untuk melakukan tugas-tugas management windows dengan dinamis. Dengan WMI, kita bisa membuat script untuk mengkombinasikan berbagai fungsionalitas WMI menjadi sebuah aplikasi yang dapat mempermudah kita dalam hal management windows. Berbagai alternatif implementasi WMI mempermudah kita dalam memilih sesuai dengan situasi dan kondisi yang sedang dihadapi. Terdapat pula sejumlah tool yang sangat membantu kita dalam mengimplementasikan WMI
Referensi 1. http://geeks.netindonesia.net/blogs/wely/archive/2008/08/16/windowsmanagement-instrumentation.aspx
Biografi Nama : Alfa Ziqri Hobi : ngoprek komputer Email :
[email protected]
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org