Top Banner
www.tobuku.com WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 1 MANAJEMEN ASET IT - BAGIAN 1 MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION Mei 20 06 Tingkat: Oleh : Feri Djuandi Pemula Menengah Mahir Pendahuluan Windows Management Instrumentation (WMI) adalah bagian dari sistem operasi Microsoft Windows. WMI bukan hanya sebuah komponen tapi merupakan teknologi inti dan standar untuk pengelolaan Windows. WMI menjadi dasar dalam pemantauan dan pengontrolan yang konsisten dan seragam dalam pengelolaan sistem secara keseluruhan di dalam lingkungan Windows. WMI memungkinkan administrator sistem untuk menarik data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi, jaringan dan komponen-komponen lainnya. Pada penerapannya, seorang programer dapat membuat sebuah program aplikasi dengan memanfaatkan WMI Scripting Library untuk bekerja dengan objek-objek WMI guna membuat berbagai perangkat manajemen dan monitor sistem. WMI mendukung sejumlah besar antar muka pemrograman seperti C++, Open Database Connectivity (ODBC), Visual Basic dan HTML yang para programer bisa gunakan untuk membuat aplikasi-aplikasi manajemen sistem yang spesifik. Untuk solusi-solusi yang sederhana, administrator sistem dapat membuat skrip dan menggunakan WMI untuk otomatisasi pekerjaan-pekerjaan administrasi seperti: Menjalankan sebuah proses pada komputer lain Menjadwalkan sebuah proses untuk jalan pada hari dan jam tertentu Me-reboot komputer dari jarak jauh Mendapatkan daftar aplikasi yang diinstal pada komputer lokal atau komputer lain Menampikan Windows event log dari komputer lokal atau komputer lain Hal lainnya, WMI dapat berintegrasi dengan komponen-komponen Windows lainnya seperti Active Directory. Kata “instrumentation” di dalam WMI mengacu pada kenyataan bahwa WMI dapat menampilkan informasi mengenai kondisi internal sistem komputer, mirip instrumen dashboard mobil yang membaca dan menampilkan informasi keadaan mesin. Instrumen-instrumen WMI dengan pemodelan objek seperti disk, process atau objek-objek lainnya ditemukan di dalam sistem Windows. Objek-objek ini dibuatkan modelnya melalui class-class seperti Win32_LogicalDisk atau Win32_Process.
31

MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

Feb 04, 2018

Download

Documents

truonglien
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 1

MANAJEMEN ASET IT - BAGIAN 1

MENGENAL WINDOWS MANAGEMENT

INSTRUMENTATION

Mei 2006 Tingkat: √

Oleh : Feri Djuandi Pemula Menengah Mahir

Pendahuluan Windows Management Instrumentation (WMI) adalah bagian dari sistem operasi Microsoft Windows. WMI bukan hanya sebuah komponen tapi merupakan teknologi inti dan standar untuk pengelolaan Windows. WMI menjadi dasar dalam pemantauan dan pengontrolan yang konsisten dan seragam dalam pengelolaan sistem secara keseluruhan di dalam lingkungan Windows. WMI memungkinkan administrator sistem untuk menarik data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi, jaringan dan komponen-komponen lainnya. Pada penerapannya, seorang programer dapat membuat sebuah program aplikasi dengan memanfaatkan WMI Scripting Library untuk bekerja dengan objek-objek WMI guna membuat berbagai perangkat manajemen dan monitor sistem.

WMI mendukung sejumlah besar antar muka pemrograman seperti C++, Open Database Connectivity (ODBC), Visual Basic dan HTML yang para programer bisa gunakan untuk membuat aplikasi-aplikasi manajemen sistem yang spesifik. Untuk solusi-solusi yang sederhana, administrator sistem dapat membuat skrip dan menggunakan WMI untuk otomatisasi pekerjaan-pekerjaan administrasi seperti:

� Menjalankan sebuah proses pada komputer lain

� Menjadwalkan sebuah proses untuk jalan pada hari dan jam tertentu

� Me-reboot komputer dari jarak jauh

� Mendapatkan daftar aplikasi yang diinstal pada komputer lokal atau komputer lain

� Menampikan Windows event log dari komputer lokal atau komputer lain

Hal lainnya, WMI dapat berintegrasi dengan komponen-komponen Windows lainnya seperti Active Directory.

Kata “instrumentation” di dalam WMI mengacu pada kenyataan bahwa WMI dapat menampilkan informasi mengenai kondisi internal sistem komputer, mirip instrumen dashboard mobil yang membaca dan menampilkan informasi keadaan mesin. Instrumen-instrumen WMI dengan pemodelan objek seperti disk, process atau objek-objek lainnya ditemukan di dalam sistem Windows. Objek-objek ini dibuatkan modelnya melalui class-class seperti Win32_LogicalDisk atau Win32_Process.

Page 2: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Arsitektur WMI Komponen-komponen arsitektural WMI adalah Manager dan CIM repository.

Komponen-komponen fisikal atau logikal dari sistem komputer seperti BIOS, memori, hrouter, sistem database atau komponen sistem operasi disebut berkomunikasi dengan WMI melalui sebuah provider

driver. Jika Anda memiliki sebuah perangkat hardware (entah itu sound card, network interface card, penggerak CDROM dan sebagainya), berkomunikasi dengan hardwaredengan managed object, ia menggunakan WMI provider sebagai perantaranya.

Sebuah provider adalah sebuah objek object untuk WMI. Provider juga menangani komunikasi yang ditangani WMI provider adalah dua arah. Berikut ini adalah beberapa contoh WMI provider

Provider DLL Namespace

Active Directory

dsprov.dll root

Event Log ntevt.dll root

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

komponen arsitektural WMI adalah WMI provider, Common Information Model (CIM) Object

Gambar 1.1. Arsitektur WMI.

komponen fisikal atau logikal dari sistem komputer seperti BIOS, memori, hrouter, sistem database atau komponen sistem operasi disebut managed object. berkomunikasi dengan WMI melalui sebuah provider. WMI provider mirip dengan sebuah

. Jika Anda memiliki sebuah perangkat hardware (entah itu sound card, network interface card, penggerak CDROM dan sebagainya), akan dibutuhkan sebuah device driver agar komputer bisa

tersebut. Serupa dengan analogi tersebut, agar WMI bisa berkomunikasi dengan managed object, ia menggunakan WMI provider sebagai perantaranya.

Sebuah provider adalah sebuah objek Component Object Model (COM) yang memantau sebuah managed object untuk WMI. Provider juga menangani Windows message dari WMI ke managed object. Jadi komunikasi yang ditangani WMI provider adalah dua arah. Berikut ini adalah beberapa contoh WMI provider

Namespace Keterangan

root\directory\ldap Memetakan objek-objek Active Directory ke WMI.

root\cimv2 Mengelola Windows event log.

2

WMI provider, Common Information Model (CIM) Object

komponen fisikal atau logikal dari sistem komputer seperti BIOS, memori, hard drive, network Sebuah managed object

mirip dengan sebuah hardware device

. Jika Anda memiliki sebuah perangkat hardware (entah itu sound card, network interface card, sebuah device driver agar komputer bisa

tersebut. Serupa dengan analogi tersebut, agar WMI bisa berkomunikasi

) yang memantau sebuah managed dari WMI ke managed object. Jadi

komunikasi yang ditangani WMI provider adalah dua arah. Berikut ini adalah beberapa contoh WMI provider.

objek Active Directory ke

Page 3: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 3

Performance Counter

wbemperf.dll root\cimv2 Memberikan akses ke data unjuk kerja.

Registry stdprov.dll root\default Membaca, menulis, mengumpulkan, memantau, membuat dan menghapus registry key dan registry value.

SNMP snmpincl.dll root\snmp Memberikan akses ke data SNMP MIB dari SNMP-managed object.

WDM wmiprov.dll root\wmi Memberikan akses ke informasi-informasi WDM device driver.

Win32 cimwin32.dll root\cimv2 Memberikan informasi mengenai komputer, disk, file, folder, file system, jaringan, sistem operasi, proses, sekuriti, service dan sebagainya.

Windows Installer

msiprov.dll root\cimv2 Memberikan akses ke informasi software yang diinstal.

Common Information Model Object Manager (CIMOM) mengelola komunikasi di antara WMI provider, CIM repository dan aplikasi-aplikasi manajemen dengan cara:

� Mendaftarkan provider-provider yang ada di dalam sebuah sistem komputer

� Meneruskan information request dari WMI kepada provider yang bersangkutan

� Memproses perintah query yang berupa WMI Query Language (WQL)

� Memvalidasi sekuriti

� Memberikan infrastruktur untuk event monitoring

Catatan:

WMI Query Language (WQL) adalah bagian dari standar American National Standards Institute Structured Query Language (ANSI SQL) dengan perubahan semantik yang minor untuk mendukung WMI.

WQL ditulis untuk menjalankan data query – untuk mendapatkan data; event query – untuk mendaftarkan dan menerima pemberitahuan dari event-event; dan schema query - untuk mendapatkan definisi-definisi class dan hubungan skemanya.

Tidak seperti perintah T-SQL pada database SQL Server dimana Anda bisa menulis query yang sangat kompleks, WQL relatif sederhana dan memiliki keterbatasan- keterbatasan.

CIM repository adalah media penyimpanan terpusat digunakan oleh CIMOM untuk menyimpan daftar

informasi tentang WMI provider dan aplikasi-aplikasi juga data manajemen. Pada prakteknya CIMOM lebih sering mendapatkan data dengan cara melakukan query kepada WMI provider daripada mendapatkan data tersebut dari CIM repository dimana datanya kedaluwarsa dengan cepat mengingat kondisi sistem yang terus berubah setiap saat (sebagai contoh sisa ruang hard disk).

Selanjutnya CIMOM dan CIM repository disebut sebagai WMI infrastructure.

WMI juga dilengkapi dengan WMI Scripting Library, yaitu sekumpulan objek-objek COM yang

memungkinkan skrip-skrip berinteraksi dengan WMI infrastructure. Aplikasi-aplikasi manajemen adalah konsumen utama informasi-informasi WMI. Aplikasi-aplikasi ini bisa berupa skrip sederhana yang dibuat oleh administrator untuk menangani masalah manajemen tertentu seperti memeriksa sisa ruang hard disk hingga skrip kompleks yang dibuat Microsoft Systems Management Server (SMS) dan Microsoft Operations Manager (MOM).

Page 4: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 4

Instalasi WMI Untuk Windows versi-versi terbaru yaitu Windows Me, Windows 2000, Windows XP dan Windows Server 2003 - secara default WMI menjadi bagian dari instalasi sistem operasi tersebut. Namun untuk Windows 98 dan Windows NT 4.0, WMI tidak terinstal. WMI bisa diperoleh dari:

http://www.microsoft.com/downloads

Program instalasinya tersebut bisa dicari dengan kata kunci “Windows Management Instrumentation (WMI) CORE 1.5 (Windows 95/98/NT 4.0).”

Perhatikan bahwa Windows NT 4.0 membutuhkan Service Pack 4 atau lebih baru sebelum WMI bisa diinstal dan dijalankan.

Software tambahan yang diperlukan untuk WMI meliputi:

� Microsoft Internet Explorer versi 5.0 atau yang lebih baru

� Windows Script Host (WSH). WSH secara default menjadi bagian sistem operasi Windows 2000, Windows XP, Windows Server 2003 dan Windows Me, tapi tidak pada Windows NT4 atau Windows 98.

WSH dapat di-download dari:

http://www.microsoft.com/downloads

Versi terakhir yang disertakan dalam Windows XP dan Windows Server 2003 adalah WSH 5.6.

Untuk menguji instalasi WMI pada komputer Anda, silakan ikuti langkah-langkah berikut ini.

1. Ketik skrip sederhana di bawah ini dengan menggunakan Notepad.

Skrip 1.1. Hostname.vbs.

Dim oWMI, oItem, oItems, sDummy

Set oWMI = GetObject("winmgmts:root\CIMV2")

Set oItems = oWMI.execQuery("select * from win32_computersystem")

For Each oItem In oItems

sDummy = oItem.name

Next

Set oItem = Nothing

Set oItems = Nothing

Set oWMI = Nothing

wscript.echo sDummy

2. Simpan filter tersebut dengan nama hostname.vbs.

3. Buka sebuah window command prompt dan pindahkan direktori ke tempat dimana file di atas disimpan. Pada prompt, ketik:

hostname.vbs

Page 5: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Pada layar akan ditampilkan nama

Catatan:

Skrip-skrip pada bagian ini bisa diperoleh dari direktori bersama artikel ini.

Program pendek di atas ditulis dengan VBScript (itu sebabnya ekstensi fileoleh komponen scripting dari sistem operasi, yaitu Windows Script Host (WSH).antar muka pemrograman yang bisa digunakan unVisual Basic, C++, bahkan mungkin dan PowerBuilder selama program

Koneksi ke WMI Sebelum objek-objek di dalam WMI bisa diakses, sebuah koneksi harus dibuat kepada WMI. Hal ini serupa dengan koneksi yang harus dibuat kepada database SQL Server sebelum objekbisa diakses. Salah satu alasan adanya mekanisme ini adalah salah satu komponen inti di dalam sistem operasi untuk pengelolaan Windows. Dengan skrip yang dibuatnya, seorang administrator bisa masuk ke dalam sistem komputer lain dan melakukan halsensitif termasuk merubah konfigurasinya. Jika hal tersebut tidak dilindungi dengan mekanisme sekuriti yang tangguh, bisa dibayangkan apa yang akan terjadi. Seseorang yang hendak mengakses objekbaik itu di dalam komputernya lokalnya maupun komputeyang cukup dan otentikasi itu dilakukan oleh sekuriti Windows NT.

Pada skrip 1.1 sebelumnya, baris “objek WMI yang terhubung ke sebuah komputer, user id atau password menggunakan identitas user yang sedauntuk selanjutnya disebut dengan identitas tertentu disebut impersonation level

pada saat koneksi WMI dibuat. Tanpa level yang sesuai, WMI mungkin akan menolak akses kepada objekobjeknya sehingga informasi tidak dapat diperoleh atau perintah operasi ditolak. Secara defamenetapkan impersonation level sebagai

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Gambar 1.2. Output hostname.vbs.

Pada layar akan ditampilkan nama computer yang bersangkutan.

ini bisa diperoleh dari direktori ..\VBS pada media yang disertakan

Program pendek di atas ditulis dengan VBScript (itu sebabnya ekstensi file-nya adalah vbs) dan ia dijalankan scripting dari sistem operasi, yaitu Windows Script Host (WSH). WSH hanyalah salah satu

antar muka pemrograman yang bisa digunakan untuk mengakses WMI. Alternatif lainnya bisa digunakan Visual Basic, C++, bahkan mungkin program pengembangan aplikasi lainnya di luar Microsoft seperti Delphi dan PowerBuilder selama program-program ini mendukung COM.

objek di dalam WMI bisa diakses, sebuah koneksi harus dibuat kepada WMI. Hal ini serupa dengan koneksi yang harus dibuat kepada database SQL Server sebelum objek-objek database di dalamnya bisa diakses. Salah satu alasan adanya mekanisme ini adalah sekuriti. Seperti dijelaskan sebelumnya, WMI adalah salah satu komponen inti di dalam sistem operasi untuk pengelolaan Windows. Dengan skrip yang dibuatnya, seorang administrator bisa masuk ke dalam sistem komputer lain dan melakukan hal

nsitif termasuk merubah konfigurasinya. Jika hal tersebut tidak dilindungi dengan mekanisme sekuriti yang bayangkan apa yang akan terjadi. Seseorang yang hendak mengakses objek

baik itu di dalam komputernya lokalnya maupun komputer lain di dalam jaringan, haruslah memiliki otoritas yang cukup dan otentikasi itu dilakukan oleh sekuriti Windows NT.

Pada skrip 1.1 sebelumnya, baris “Set oWMI = GetObject( "winmgmts:root\CIMV2" objek WMI yang terhubung ke sebuah path (istilah WMI path akan dijelaskan beberapa saat lagi). komputer, user id atau password tidak terlihat di sini karena ini adalah koneksi standar ke komputer lokal menggunakan identitas user yang sedang logon ke sistem. Identitas user berikut hakuntuk selanjutnya disebut dengan credential. Cara untuk membuat koneksi ke WMI dengan menggunakan

impersonation level. Untuk tujuan tertentu, impersonation level harus ditentukan

pada saat koneksi WMI dibuat. Tanpa level yang sesuai, WMI mungkin akan menolak akses kepada objekobjeknya sehingga informasi tidak dapat diperoleh atau perintah operasi ditolak. Secara defamenetapkan impersonation level sebagai wbemImpersonateLevelImpersonate yang artinya menggunakan

5

pada media yang disertakan

nya adalah vbs) dan ia dijalankan WSH hanyalah salah satu

tuk mengakses WMI. Alternatif lainnya bisa digunakan di luar Microsoft seperti Delphi

objek di dalam WMI bisa diakses, sebuah koneksi harus dibuat kepada WMI. Hal ini serupa objek database di dalamnya

adalah sekuriti. Seperti dijelaskan sebelumnya, WMI adalah salah satu komponen inti di dalam sistem operasi untuk pengelolaan Windows. Dengan skrip yang dibuatnya, seorang administrator bisa masuk ke dalam sistem komputer lain dan melakukan hal-hal yang

nsitif termasuk merubah konfigurasinya. Jika hal tersebut tidak dilindungi dengan mekanisme sekuriti yang bayangkan apa yang akan terjadi. Seseorang yang hendak mengakses objek-objek WMI

r lain di dalam jaringan, haruslah memiliki otoritas

)” akan membuat koneksi akan dijelaskan beberapa saat lagi). Nama

di sini karena ini adalah koneksi standar ke komputer lokal ng logon ke sistem. Identitas user berikut hak-hak yang dimilikinya

membuat koneksi ke WMI dengan menggunakan . Untuk tujuan tertentu, impersonation level harus ditentukan

pada saat koneksi WMI dibuat. Tanpa level yang sesuai, WMI mungkin akan menolak akses kepada objek-objeknya sehingga informasi tidak dapat diperoleh atau perintah operasi ditolak. Secara default, WMI

yang artinya menggunakan

Page 6: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 6

credential dari user yang bersangkutan. Pada tabel di bawah ini diperlihatkan level-level yang dikenal oleh WMI.

Tabel 1.1. Impersonation Level

Impersonation Level Nilai Keterangan

wbemImpersonationLevelAnonymous atau Anonymous

1 Menyembunyikan credential dari pemanggil. Akses ke WMI mungkin tidak akan berhasil menggunakan impersonation level ini.

wbemImpersonationLevelIdentify atau Identify

2 Membolehkan objek-objek untuk membaca credential dari pemanggil. Akses ke WMI mungkin tidak akan berhasil menggunakan impersonation level ini.

wbemImpersonationLevelImpersonate atau Impersonate

3 Membolehkan objek-objek untuk menggunakan credential dari pemanggil. Ini adalah impersonation level yang paling dianjurkan untuk pemrograman WMI guna pemanggilan API.

wbemImpersonationLevelDelegate atau Delegate

4 Membolehkan objek-objek untuk mengijinkan objek-objek lain menggunakan credential dari pemanggil. Penggunaan level ini mengandung resiko sehingga faktor sekuritinya harus diperhitungkan.

Pendek kata, pilihan impersonation level pada WMI mengatakan pada sistem credential siapa yang digunakan ketika panggilan atau akses ke objek WMI dilakukan. Dengan cara ini, pembuat program atau administrator dapat membatasi siapa saja yang bisa membuat perubahan pada sistem.

Kembali kepada skrip 1.1 - jika impersonation level hendak ditentukan, maka informasi terseut harus ditambahkan pada parameter koneksinya seperti pada contoh di bawah ini.

Set oWMI = GetObject("winmgmts:{impersonationLevel=impersonate}! root\cimv2");

Pada perintah diatas, impersonation level ditetapkan sebagai wbemImpersonationLevelImpersonate yang artinya objek-objek WMI akan diakses dengan menggunakan credential dari pemanggil atau user yang bersangkutan. Cara lainnya diperlihatkan pada perintah di bawah ini dimana impersonation level ditentukan melalui property ImpersonationLevel dari objek Security_.

Set oWMI = GetObject("winmgmts: root\cimv2")

oWMI.Security_.ImpersonationLevel = 3

Dua cara di atas akan bekerja dengan baik, pilihannya diserahkan pada penggunanya. Modifikasi hostname.vbs dengan menggunakan cara pertama diperlihatkan pada skrip di bawah ini.

Skrip 1.2. Hostname2.vbs.

Dim oWMI, oItem, oItems, sDummy

Set oWMI = GetObject ("winmgmts:{impersonationLevel=impersonate}!

root\CIMV2")

Set oItems = oWMI.execQuery("select * from win32_computersystem")

For Each oItem In oItems

sDummy = oItem.name

Next

Set oItem = Nothing

Page 7: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Set oItems = Nothing

Set oWMI = Nothing

wscript.echo sDummy

Modifikasi hostname.vbs dengan menggunakan cara kePerhatikan bahwa impersonation level

Skrip 1.3. Hostname3.vbs.

Dim oWMI, oItem, oItems, sDummy

Set oWMI = GetObject("winmgmts:root

oWMI.Security_.ImpersonationLevel = 1

Set oItems = oWMI.execQuery("select * from win32_computersystem")

For Each oItem In oItems

sDummy = oItem.name

Next

Set oItem = Nothing

Set oItems = Nothing

Set oWMI = Nothing

wscript.echo sDummy

Berikut ini adalah output dari skrip di atas.

Silakan mengganti impersonation level

Struktur WMI WMI adalah sebuah komponen yang memiliki classsedemikian kompleksnya. Sedemikian luas dan rumitnya sehingga tanpa sebuah panduan Anda akan

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Modifikasi hostname.vbs dengan menggunakan cara ke-dua diperlihatkan pada skrip di bawah ini. impersonation level-nya ditetapkan sebagai Anonymous.

Dim oWMI, oItem, oItems, sDummy

GetObject("winmgmts:root\CIMV2")

oWMI.Security_.ImpersonationLevel = 1

Set oItems = oWMI.execQuery("select * from win32_computersystem")

Berikut ini adalah output dari skrip di atas.

Gambar 1.3. Output hostname3.vbs.

Silakan mengganti impersonation level-nya dengan 2,3 atau 4.

WMI adalah sebuah komponen yang memiliki class-class sangat banyak jumlahnya dsedemikian kompleksnya. Sedemikian luas dan rumitnya sehingga tanpa sebuah panduan Anda akan

7

dua diperlihatkan pada skrip di bawah ini.

Set oItems = oWMI.execQuery("select * from win32_computersystem")

class sangat banyak jumlahnya dengan relasi yang sedemikian kompleksnya. Sedemikian luas dan rumitnya sehingga tanpa sebuah panduan Anda akan

Page 8: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

tersesat di dalamnya bagai berputardiorganisasikan secara teratur di dalam sdasarnya menggambarkan pohon struktur classclass-class dikelompokkan dalam sebuah lingkungan yang disebut .NET tentunya tidak asing lagi dengan istilah namespace.) Di dalam WMI ada sejumlah namespace dengan hirarki dan hubungan tertentu, dan masingnamespace tersebut adalah root.

Jika memperhatikan parameter koneksi WMI “satunya adalah teks “root\CIMV2bawah namespace root. Menentukan WMI path

Pada gambar di bawah ini diperlihatkan

Gambar 1.

Jika tertarik untuk mengetahui daftar semua namespace di dalam WMI, silakan memenjalankannya pada command prompt.

Skrip 1.4. GetAllNamespaces.vbs.

strComputer = "."

Call EnumNameSpaces("root")

Sub EnumNameSpaces(strNameSpace)

WScript.Echo strNameSpace

Set objWMIService = GetObject("winmgmts:

strNameSpace)

Set colNameSpaces = objWMIService.InstancesOf("__NAMESPACE")

For Each objNameSpace In colNameSpaces

Call EnumNameSpaces(strNameSpace & "

Next

End Sub

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

tersesat di dalamnya bagai berputar-putar di hutan belantara tanpa berujung. Untungnya classdiorganisasikan secara teratur di dalam sebuah struktur yang dinamakan WMI schemadasarnya menggambarkan pohon struktur class-class di dalam WMI dan pengelompokannya. Sekumpulan

class dikelompokkan dalam sebuah lingkungan yang disebut namespace (bagi.NET tentunya tidak asing lagi dengan istilah namespace.) Di dalam WMI ada sejumlah namespace dengan hirarki dan hubungan tertentu, dan masing-masing namespace memiliki nama. Puncak dari hirarki

.

Jika memperhatikan parameter koneksi WMI “Set oWMI = GetObject( "winmgmts:rootCIMV2”. Ini adalah sebuah WMI path yang mengacu ke namespace CIMV2 di

bawah namespace root. Menentukan WMI path adalah menentukan jalan menuju objek yang akan diakses.

Pada gambar di bawah ini diperlihatkan namespace-namespace di dalam WMI.

Gambar 1.4. Namespace-namespace di dalam WMI.

Jika tertarik untuk mengetahui daftar semua namespace di dalam WMI, silakan memenjalankannya pada command prompt.

4. GetAllNamespaces.vbs.

Call EnumNameSpaces("root")

Sub EnumNameSpaces(strNameSpace)

WScript.Echo strNameSpace

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "

Set colNameSpaces = objWMIService.InstancesOf("__NAMESPACE")

For Each objNameSpace In colNameSpaces

Call EnumNameSpaces(strNameSpace & "\" & objNameSpace.Name)

8

tanpa berujung. Untungnya class-class WMI WMI schema. WMI schema pada

class di dalam WMI dan pengelompokannya. Sekumpulan (bagi seorang programer

.NET tentunya tidak asing lagi dengan istilah namespace.) Di dalam WMI ada sejumlah namespace dengan masing namespace memiliki nama. Puncak dari hirarki

"winmgmts:root\CIMV2" )”, tampak ”. Ini adalah sebuah WMI path yang mengacu ke namespace CIMV2 di

adalah menentukan jalan menuju objek yang akan diakses.

Jika tertarik untuk mengetahui daftar semua namespace di dalam WMI, silakan mengetik skrip ini dan

strComputer & "\" &

Set colNameSpaces = objWMIService.InstancesOf("__NAMESPACE")

" & objNameSpace.Name)

Page 9: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Berikut ini adalah output dari skrip

Gambar 1.

Berkaitan dengan topik yang dibahas namespace yang ada. Walaupun demikian, nanti ada di dalam namespace ini sehingga uraian pada class yang ada di dalam namespace tersebut. namespace root\CIMV2, silakan men

Skrip 1.5. GetAllClasses.vbs.

strComputer = "."

Set objWMIService = GetObject("winmgmts:

"\root\cimv2")

Set colClasses = objWMIService.SubclassesOf()

For Each objClass In colClass

WScript.Echo objClass.Path_.Path

Next

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Berikut ini adalah output dari skrip tersebut.

Gambar 1.5. Output GetAllNamespaces.vbs.

Berkaitan dengan topik yang dibahas artikel ini, CIMV2 adalah satu-satunya yang akan diulasnamespace yang ada. Walaupun demikian, nanti akan diperlihatkan bahwa ada begitu baada di dalam namespace ini sehingga uraian pada artikel ini pun tidak akan cukup membahas satu per satu class yang ada di dalam namespace tersebut. Jika tertarik untuk mengetahui daftar semua

, silakan mengetik skrip ini dan menjalankannya pada command prompt.

Set objWMIService = GetObject("winmgmts:\\" & strComputer &

Set colClasses = objWMIService.SubclassesOf()

For Each objClass In colClasses

WScript.Echo objClass.Path_.Path

9

satunya yang akan diulas dari seluruh bahwa ada begitu banyak class yang

ini pun tidak akan cukup membahas satu per satu tertarik untuk mengetahui daftar semua class di dalam

ini dan menjalankannya pada command prompt.

" & strComputer &

Page 10: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Berikut ini adalah output dari skrip tersebut.

Untuk masuk lebih jauh ke dalam sebuah class, property dari class yang bersangkutanSebagai contoh, pada skrip di bawah ini

Skrip 1.6. Win32_ComputerSystem.vbs

Dim oItem, oItems, strComputerName

strComputerName = "HO-FDJUANDI"

on error resume next

Set oItems = GetObject("winmgmts:{impersonationLevel=impersonate}!

Win32_ComputerSystem.Name=""" & strComputerName & """")

For Each oItem In oItems.Properties_

wscript.echo oItem.name & ": " & oItem.value

Next

Set oItem = Nothing

Set oItems = Nothing

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Berikut ini adalah output dari skrip tersebut.

Gambar 1.6. Output GetAllClasses.vbs.

Untuk masuk lebih jauh ke dalam sebuah class, property dari class yang bersangkutanSebagai contoh, pada skrip di bawah ini dipilih sebuah class yaitu Win32_ComputerSystem.

Win32_ComputerSystem.vbs.

Dim oItem, oItems, strComputerName

FDJUANDI"

GetObject("winmgmts:{impersonationLevel=impersonate}!

Win32_ComputerSystem.Name=""" & strComputerName & """")

For Each oItem In oItems.Properties_

wscript.echo oItem.name & ": " & oItem.value

10

Untuk masuk lebih jauh ke dalam sebuah class, property dari class yang bersangkutan dapat ditampilkan. ilih sebuah class yaitu Win32_ComputerSystem.

GetObject("winmgmts:{impersonationLevel=impersonate}!

Page 11: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Berikut ini adalah output dari skrip tersebut.

Gambar 1.

Skrip diatas dapat dimodifikasi Win32_DiskDrive, Win32_PhysicalMemory dan sebagainya. Cukup menyenangkan bisa mengetahui banyak hal mengenai pernik-pernik di dalam sistem komputer pada level property dari class-class inilah waktu kita akan banyak dihabiskan di dalam

Mengenal COM API untuk WMIPada uraian sebelumnya telah dijelaskan apa yang dimaksud dengan WMI dan apa saja yang terkandung di dalamnya. Dari arsitektur WMI yang diperlihat oleh gambar 1.1 diperlihatkan bahwa antar muka pemrograman (skrip atau aplikasi) tidak mengakses objeksebuah lapisan yang dinamakan COM Application Programming Interfacecontoh skrip yang telah diperlihatkan sejak awal pembahasan ini sesungguhnya menggunakan API ini sebagai antar muka untuk mendapatkan

Catatan:

API adalah sebuah istilah yang generik. Menurut definisinya API adalah sekumpulan rutin, protokol dan perangkat untuk membuat softwaremempermudah seorang programer untuk mengembangblok modul yang bisa dirangkai atau disusun bersamapada arti antar muka yang sesungguhnya, yaitu seorang programer tidak perlu mengetahui sistem yang ada dibelakang antar muka itkomponen-komponen internal di dalamnya berinteraksi satu sama lain dan kerumitan lainnya. Programer tidak akan bersentuhan langsung dengan itu, namun ia akan berkomunikasi dengan sistem tersebut melalui blok-blok Di dalam dunia pemrograman dikWin32 API), COM dan .NET. Pada prakteknya, cara programer berkomunikasi dengan API bisa melalui pemanggilan prosedur dan fungsi secara langsung atau pendeklarasian class, tergantung dari arsitektur API yang bersangkutan.

API standar yang dikembangkan Microsoft untuk WMI adalah berbentuk COM. Konsep COM API untuk WMIpada dasarnya serupa dengan model komponen

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

ni adalah output dari skrip tersebut.

Gambar 1.7. Output Win32_ComputerSystem.vbs.

dapat dimodifikasi dengan mengganti class-nya menjadi Win32_PointingDevice, Win32_DiskDrive, Win32_PhysicalMemory dan sebagainya. Cukup menyenangkan bisa mengetahui banyak

pernik di dalam sistem komputer kita yang selama ini tidak dieksplorasi. Dengan bekclass inilah waktu kita akan banyak dihabiskan di dalam

Mengenal COM API untuk WMI Pada uraian sebelumnya telah dijelaskan apa yang dimaksud dengan WMI dan apa saja yang terkandung di

ur WMI yang diperlihat oleh gambar 1.1 diperlihatkan bahwa antar muka pemrograman (skrip atau aplikasi) tidak mengakses objek-objek WMI secara langsung, melainkan lewat sebuah lapisan yang dinamakan COM Application Programming Interface (API) untuk WMI. Jadi, contohcontoh skrip yang telah diperlihatkan sejak awal pembahasan ini sesungguhnya menggunakan API ini sebagai antar muka untuk mendapatkan layanan-layanan WMI.

API adalah sebuah istilah yang generik. Menurut definisinya API adalah sekumpulan rutin, protokol dan perangkat untuk membuat software-software aplikasi. Sebuah API yang baik akan mempermudah seorang programer untuk mengembangkan software dengan menyediakan blokblok modul yang bisa dirangkai atau disusun bersama-sama. Kata “interface” pada API merujuk pada arti antar muka yang sesungguhnya, yaitu seorang programer tidak perlu mengetahui sistem yang ada dibelakang antar muka itu, bagaimana sisitem itu bekerja, bagaimana

komponen internal di dalamnya berinteraksi satu sama lain dan kerumitan lainnya. Programer tidak akan bersentuhan langsung dengan itu, namun ia akan berkomunikasi dengan

modul yang ada di kulit luar sistem tersebut – antar mukanya. dikenal banyak bentuk API, misalnya native API (contohnya

Win32 API), COM dan .NET. Pada prakteknya, cara programer berkomunikasi dengan API bisa prosedur dan fungsi secara langsung atau pendeklarasian class,

tergantung dari arsitektur API yang bersangkutan.

API standar yang dikembangkan Microsoft untuk WMI adalah berbentuk COM. Konsep COM API untuk WMIa dengan model komponen-komponen COM lainnya – tidak ada yang terlalu khusus.

11

nya menjadi Win32_PointingDevice, Win32_DiskDrive, Win32_PhysicalMemory dan sebagainya. Cukup menyenangkan bisa mengetahui banyak

yang selama ini tidak dieksplorasi. Dengan bekerja class inilah waktu kita akan banyak dihabiskan di dalam artikel ini.

Pada uraian sebelumnya telah dijelaskan apa yang dimaksud dengan WMI dan apa saja yang terkandung di ur WMI yang diperlihat oleh gambar 1.1 diperlihatkan bahwa antar muka

objek WMI secara langsung, melainkan lewat ) untuk WMI. Jadi, contoh-

contoh skrip yang telah diperlihatkan sejak awal pembahasan ini sesungguhnya menggunakan API ini

API adalah sebuah istilah yang generik. Menurut definisinya API adalah sekumpulan rutin, software aplikasi. Sebuah API yang baik akan

kan software dengan menyediakan blok-sama. Kata “interface” pada API merujuk

pada arti antar muka yang sesungguhnya, yaitu seorang programer tidak perlu mengetahui u, bagaimana sisitem itu bekerja, bagaimana

komponen internal di dalamnya berinteraksi satu sama lain dan kerumitan lainnya. Programer tidak akan bersentuhan langsung dengan itu, namun ia akan berkomunikasi dengan

antar mukanya. enal banyak bentuk API, misalnya native API (contohnya

Win32 API), COM dan .NET. Pada prakteknya, cara programer berkomunikasi dengan API bisa prosedur dan fungsi secara langsung atau pendeklarasian class,

API standar yang dikembangkan Microsoft untuk WMI adalah berbentuk COM. Konsep COM API untuk WMI tidak ada yang terlalu khusus.

Page 12: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 12

Yang penting, class-class apa yang ada di dalam API tersebut harus diketahui, demikian juga property dan method yang tersedia di dalam masing-masing class.

Penting untuk bisa membedakan class-class WMI dan class-class di dalam COM API untuk WMI. Mereka adalah dua hal yang berbeda. Sebagai ilustrasinya bayangkan seperti ini: Anda memiliki sebuah database SQL Server dengan objek-objek di dalamnya seperti table, view, stored procedure dan sebagainya. Analogikan database SQL Server ini sebagai WMI. Untuk bisa mengakses database dan table-table di dalamnya, maka digunakan sebuah COM API, yaitu ADODB. Nah, analogikan ADODB ini dengan COM API untuk WMI. Dengan demikian, jika sedang berbicara mengenai class atau objek maka penting untuk bisa membedakan konteks mana yang sedang dibicarakan – apakah API-nya atau WMI itu sendiri.

Catatan:

Pada artikel ini istilah class dan objek digunakan secara bergantian. Class dan objek adalah dua hal yang berbeda. Class adalah cetakan atau pola sebuah objek sehingga ia sendiri tidak pernah berwujud. Sementara itu, sebuah objek adalah manifestasi dari class yang bersangkutan. Dari sebuah class dapat dihasilkan sebuah atau beberapa objek. Jadi bisa dibayangkan class sebagai sebuah cetakan mainan plastik, sementara objek adalah mainan itu sendiri. Cetakannya hanya satu, tapi mainannya bisa dicetak berulang kali hingga banyak jumlahnya.

Itu adalah konsep awal Object Oriented Programming (OOP.) artikel ini tidak akan membahas teori OOP oleh karena itu pembaca diharapkan sudah memahami hal tersebut. Pada beberapa literatur, istilah objek kadang-kadang disebut juga instance.

Sebuah objek dalam sebuah program akan berwujud pada saat program tersebut dijalankan dan objek tersebut dibuat (instantiated) untuk kemudian keberadaannya dialokasikan pada memori komputer. Di dalam sebuah program, sebuah objek diacu dengan sebuah variabel. Variabel ini tidak menampung objek tersebut secara utuh, melainkan berisi sebuah alamat (pointer) yang menunjuk keberadaan objek tersebut di memori komputer.

Pada tabel di bawah ini diperlihatkan class-class untuk objek-objek pemrograman WMI yang terdapat di dalam COM API untuk WMI.

Tabel 1.2. Objek-objek WMI

Objek Keterangan

SWbemDateTime Merekonstruksi dan memformat nilai datetime CIM. Objek ini ada di dalam Windows XP.

SWbemEventSource Mengambil informasi event-event sehubungan dengan SWbemServices.ExecNotificationQuery.

SWbemLastError Memberikan informasi kesalahan yang lebih lengkap ketika terjadi kesalahan.

SWbemLocator Mendapatkan objek SWbemServices dapat mengakses WMI pada komputer tertentu.

SWbemMethod Mengandung sebuah definisi method WMI.

SWbemMethodSet Mendapatkan kumpulan (collection) objek-objek SWbemMethod.

SWbemNamedValue Mengandung sebuah named value.

SWbemNamedValueSet Mendapatkan akses ke kumpulan objek-objek SWbemNamedValue.

SWbemObject Mengandung dan memanipulasi sebuah class objek WMI.

SWbemObjectEx Melengkapi fungsi SWbemObject. Objek ini menambahkan method Refresh untuk objek-objek SWbemRefresher. Objek ini tidak ada pada

Page 13: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 13

Windows 2000, Windows NT 4.0 dan Windows Me/98/95

SWbemObjectPath Menghasilkan dan memeriksa object path.

SWbemObjectSet Mendapatkan akses ke kumpulan objek-objek SWbemObject.

SWbemPrivilege Menetapkan atau menghapus sebuah hak (privilege.)

SWbemPrivilegeSet Mendapatkan akses ke kumpulan objek-objek SWbemPrivilege.

SWbemProperty Mengnadung sebuah property WMI.

SWbemPropertySet Mendapatkan akses ke kumpulan objek-objek SWbemProperty.

SWbemQualifier Contains a single property qualifier.

SWbemQualifierSet Mendapatkan akses ke kumpulan objek-objek SWbemQualifier.

SWbemRefresher Mengumpulkan dan memperbaharui nilai-nilai property dari objek dengan sekali operasi. Objek ini tidak ada pada Windows 2000, Windows NT 4.0 dan Windows Me/98/95.

SWbemRefreshableItem Mewakili sebuah elemen yang bisa diperbaharui di dalam sebuah objek SWbemRefresher, seperti property. Objek ini tidak ada pada Windows 2000, Windows NT 4.0 dan Windows Me/98/95.

SWbemSecurity Mengelola seting sekuriti seperti COM Privilege, AuthenticationLevel, dan ImpersonationLevel.

SWbemServices Membuat, merubah dan mendapatkan instance atau class.

SWbemServicesEx Menambah fungsi dari SWbemServices. Objek ini menambahkan method Put dan PutAsync untuk membolehkan sebuah class atau instance untuk disimpan di beberapa namespace. Objek ini tidak ada pada Windows 2000, Windows NT 4.0 dan Windows Me/98/95.

SWbemSink Mendapatkan hasil dari operasi-operasi asynchronous dan event notification, yang digunakan oleh aplikasi-aplikasi klien.

Masing-masing class di atas memiliki method dan property yang cukup lengkap. Daftar class dari API di atas dan keterangannya mungkin akan sangat membingungkan karena asing kedengarannya. Tidak perlu kuatir dengan itu, karena kita akan mengupasnya perlahan-lahan - lagipula berkaitan dengan topik pada artikel ini, kita hanya akan membahas beberapa class saja. Jika tertarik untuk mengetahui lebih jauh mengenai COM API untuk WMI ini, silakan mendapatkan informasinya di dalam Microsoft Developer Network (MSDN), Internet atau CD.

Seperti telah disebutkan, API untuk WMI berbentuk COM. Dan sebagaimana layaknya sebuah objek COM, maka sebelum objek itu bisa digunakan di dalam sebuah program maka ia harus diinisiasi (misalnya dengan perintah CreateObject.) Sekarang mari perhatikan potongan dari skrip 1.1 yang telah dibuat sebelumnya. Pada bagian yang mana Anda bisa melihat objek-objek dari COM yang dimaksud? Apakah Anda menjumpai objek SwbemLocator, SwbemService atau SwbemObject misalnya? Mungkin tidak, lalu bagaimana penjelasannya?

Dim oWMI, oItem, oItems, sDummy

Set oWMI = GetObject("winmgmts:root\CIMV2")

Set oItems = oWMI.execQuery("select * from win32_computersystem")

...

Page 14: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 14

Catatan:

Contoh-contoh skrip pada bagian ini menggunakan bahasa pemrograman VBScript. Jika hendak menggunakan bahasa lain seperti Jscript atau C++, Anda harus memodifikasi sintaks-sintaksnya agar bisa dijalankan pada interpreter/compiler yang bersangkutan.

Alasan mengapa objek-objek API WMI tidak dijumpai pad baris-baris di atas adalah karena skrip ini menggunakan cara moniker. Moniker artinya shortcut atau jalan pintas untuk mengakses objek-objek WMI.

Sekalipun objek-objek API WMI tidak disebut-sebut namanya, sesungguhnya skrip ini tetap menggunakan objek-objek itu. Penulisan program WMI dengan cara moniker dikenal oleh bahasa-bahasa pemrograman dan bisa dengan berjalan baik. Lalu bagaimana seandainya kita tidak ingin menggunakan cara moniker? Penulisan program WMI menggunakan cara “tradisional” akan sedikit lebih panjang, tapi dari baris-baris programnya akan terlihat urutan prosesnya sehingga mendapat pemahaman lebih baik mengenai pemrograman antar muka WMI.

Pada umumnya ada tiga objek API yang sering dipakai saat akan mengakses objek-objek WMI:

� SwbemLocator

� SwbemService

� SwbemObject

Objek SwbemLocator SwbemLocator adalah objek koneksi atau lebih sering disebut locator yang memungkinkan kita untuk mendapatkan layanan WMI baik dari komputer local atau komputer lain. Mode integrated security (menggunakan credential dari user yang sedang logon) bisa digunakan pada saat membuat koneksi, atau menggunakan credential lain.

SwbemLocator adalah objek yang pertama dalam skrip yang harus ditangani karena ia adalah objek koneksi. Koneksi harus dibuat ke WMI sebelum objek-objek di dalamnya bisa diakses.

Objek SwbemLocator dibuat dengan cara sebagai berikut.

Dim objLocator

Set objLocator = CreateObject("WbemScripting.SwbemLocator")

Catatan:

Baris perintah di atas mengandung teks “WbemScripting”. Web Based Enterprise Management (WBEM) adalah pondasi untuk WMI. WBEM mengandung standar-standar untuk pengaksesan dan presentasi data manajemen di dalam sebuah enterprise. WBEM berpijak pada sebuah skema yang disebut Common Information Model (CIM) yang merupakan standar industri dikembangkan oleh Desktop Management Task Force (DMTF).

Objek locator WMI ini hanya memiliki sebuah method yaitu ConnectServer. Method ini akan

mengembalikan objek SwbemService yang mewakili layanan WMI dari komputer yang buat koneksinya. Pemanggilan ConnectServer tanpa parameter akan terhubung ke layanan WMI komputer lokal menggunakan integrated security. Contoh:

Dim objLocator, objSvc

Set objLocator = CreateObject("WbemScripting.SwbemLocator")

Set objSvc = objLocator.ConnectServer()

Page 15: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 15

Cara lainnya yang umum digunakan pada ConnectServer adalah membuat koneksi ke komputer lain seperti pada sintaks di bawah ini.

Set objSvc = objLocator.ConnectServer("Server1", "root\cimv2", "administrator",

"standard")

Berikut ini adalah sintaks method ConnectServer selengkapnya.

objwbemServices = SwbemLocator.ConnectServer(

[ strServer = "." ],

[ strNamespace = "" ],

[ strUser = "" ],

[ strPassword = "" ],

[ strLocale = "" ],

[ strAuthority = "" ],

[ iSecurityFlags = 0 ],

[ objwbemNamedValueSet = 0 ]

)

Nama Parameter Keterangan

strServer Opsional. Nama komputer yang akan diakses. Jika komputer tersebut berada pada domain yang berbeda, maka nama komputer harus disebutkan secara lengkap bersama nama domain-nya, contoh “myServerName.fullyQualifiedDomain”. Jika parameter ini dikosongkan, maka akses secara default diarahkan ke komputer lokal.

strNamespace

Opsional. String yang menyebutkan namespace yang akan digunakan, contoh “root\default”. Jika parameter ini dikosongkan, maka namespace yang akan digunakan adalah namespace default yang dikonfigur untuk pemrograman tersebut (umumnya “root\CIMV2”).

strUser

Opsional. Nama user yang digunakan untuk membuat koneksi. Format string ini bisa hanya menyebutkan nama user-nya saja atau lengkap dengan nama domain-nya seperti Domain\Username. Jika parameter ini dikosongkan artinya mode yang digunakan adalah integrated security. Parameter strUser hanya bisa digunakan jika hendak mengakses komputer lain. Jika parameter ini diisi saat membuat koneksi ke komputer lokal, maka koneksi akan gagal.

strPassword

Opsional. String yang berisi password dari user. Parameter ini diabaikan pada mode integrated security. Parameter strPassword digunakan bersama parameter strUser saat membuat koneksi ke komputer lain. Jika otentikasi yang dipilih adalah Kerberos, nama user dan password pada strUser dan strPassword tidak dapat dicuri di dalam jaringan.

strLocale

Opsional. String ini digunakan untuk menetapkan kode lokalisasi. Untuk kode Microsoft formatnya adalah “MS_xxxx”, dimana xxxx adalah string dalam bentuk heksadesimal yang mengindikasikan LCID. Contoh untuk American English adalah “MS_409”.

strAuthority

Parameter ini bersifat opsional. Jika digunakan, pilihannya hanya Kerberos atau NTLMDomain.

Page 16: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 16

Kerberos: Jika parameter strAuthority dimulai dengan string “Kerberos:”, maka otentikasi yang digunakan adalah Kerberos dan parameter ini harus berisi Kerberos principal name. Kerberos principal name ditetapkan sebagai Kerberos:domain, misalnya Kerberos:MyDomain.

NTLMDomain: Untuk menggunakan otentikasi NT Lan Manager (NTLM) parameter ini diisi sebagai NTLMDomain:domain, misalnya NTLMDomain: MyDomain.

Jika parameter ini dikosongkan, sistem operasi bernegosiasi dengan COM untuk menentukan otentikasi NTLM atau Kerberos yang akan digunakan. Parameter ini hanya digunakan untuk koneksi ke komputer lain. Jika strAuthority diisi untuk koneksi komputer lokal, prosesnya akan gagal.

Jika nama domain sudah diisi pada strUser, maka nama domain jangan diisi lagi pada strAuthority. Jika nama domain disebutkan pada dua parameter ini, prosesnya akan gagal dengan pesan kesalahan “Invalid Parameter“.

iSecurityFlags

Opsional. Digunakan untuk mengirim ke ConnectServer. Nilai flag:

0: Pemanggilan ConnectServer akan kembali setelah koneksi ke komputer berhasil dibuat. Hal ini akan mengakibatkan program menjadi hang jika koneksi tidak berhasil dibuat.

128: Pemanggilan ConnectServer dijamin kembali dalam 2 menit atau kurang. Flag ini digunakan untuk mencegah program hang jika koneksi gagal.

objwbemNamedValueSet Opsional. Umumnya parameter ini tidak didefinisikan.

Jika berhasil, method ConnectServer akan mengembalikan objek SWbemServices yang merujuk ke namespace yang ditetapkan di dalam parameter strNamespace dari komputer yang ditetapkan dalam parameter strServer.

Setelah pemanggilan ConnectServer, objek Err bisa mengandung salah satu kode kesalahan dari kode-kode berikut ini.

Kode Kesalahan Keterangan

wbemErrAccessDenied 2147749891 0x80041003

Nama user dan password salah atau tidak memiliki otoritas untuk membuat koneksi.

wbemErrFailed 2147749889 0x80041001

Kesalahan yang tidak diketahui.

wbemErrInvalidNamespace 2147749902 0x8004100E

Namespace tidak ditemukan di komputer tersebut.

wbemErrInvalidParameter 2147749896 0x80041008

Terjadi kesalahan pengisian parameter, atau namespace tidak bisa digapai.

wbemErrOutOfMemory 2147749894

Memori tidak cukup.

Page 17: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 17

0x80041006

wbemErrTransportFailure 2147749909

Terjadi kesalahan pada jaringan.

Method ConnectServer digunakan jika hendak membuat koneksi dengan nama user yang berbeda (berikut password-nya) pada komputer lain karena cara moniker tidak bisa digunakan untuk menetapkan nama user yang lain. Cara moniker terbatas hanya untuk integrated security. Namun demikian, moniker bukanlah pilihan yang jelek seandainya program yang dibuat memang ingin dibatasi sekuritinya agar hanya bisa mengakses komputer lokal.

Objek SwbemService, SwbemObjectSet dan SwbemObject SwbemService adalah objek yang dikembalikan oleh method SwbemLocator.ConnectServer. Setelah koneksi WMI berhasil dibuat, objek SwbemService digunakan untuk mendapatkan layanan-layanan WMI dari komputer yang terhubung. Method yang sering digunakan pada objek SwbemService adalah InstancesOf, yang mengembalikan semua instance dari class WMI. Method lainnya adalah Get yang digunakan untuk mendapatkan property-property dan yang terakhir adalah ExecQuery untuk menjalankan perintah WQL. Di bawah ini adalah contoh skrip untuk pemakaian method InstancesOf.

Dim objLocator, objSvc, objSet

Set objLocator = CreateObject("WbemScripting.SwbemLocator")

Set objSvc = objLocator.ConnectServer()

Set objSet = objSvc.InstancesOf( "win32_NetworkAdapterConfiguration")

Contoh lainnya jika menggunakan method ExecQuery:

...

Set objSet = objSvc.ExecQuery( "select * from Win32_NetworkAdapterConfiguration

where IPEnabled='true'")

Pada dua contoh di atas, variabel objSet mengandung sebuah collection SwbemObjects yang objeknya bisa diperoleh menggunakan iterasi.

Dim objNic

For Each objNic In objSet

Wscript.Echo(objNic.Caption)

Next

Method Get hanya mengembalikan sebuah objek. Hal itu karena Get mengambil property kunci dari sebuah objek, dimana ia adalah unik. Contoh:

Dim objLocator, objSvc, objNic

Set objLocator = CreateObject("WbemScripting.SwbemLocator")

Set objSvc = objLocator.ConnectServer()

Set objNic = objSvc.Get ("win32_NetworkAdapterConfiguration.Index = 1")

Berikut ini adalah sintaks method InstancesOf selengkapnya.

objWbemObjectSet = SwbemService.InstancesOf(

strClass,

[ iFlags = wbemFlagReturnImmediately ],

Page 18: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 18

[ objWbemNamedValueSet = null ]

)

Nama Parameter Keterangan

strClass

Harus diisi. String yang mengandung nama class. Parameter ini tidak boleh dikosongkan.

iFlags

Opsional. Parameter ini menentukan seberapa dalam enumerasi (pengumpulan informasi) mengembalikan objek-objek termasuk objek-objek dibawahnya. Parameter ini juga menentukan seberapa cepat pemanggilan fungsi berakhir dan kembali. Nilai default parameter ini adalah wbemFlagReturnImmediately. Alternatif nilai-nilai parameter iFlags adalah sebagai berikut.

wbemFlagForwardOnly 32 0x20

Forward-only. Operasi umumnya jauh lebih cepat dam menggunakan sedikit memori.

wbemFlagBidirectional 0 0x0

WMI akan mempertahankan pointer ke objek WMI sampai klien melepaskan enumerator-nya.

wbemFlagReturnImmediately 16 0x10

Nilai default. Flag ini menyebabkan pemanggilan kembali dengan segera.

wbemFlagReturnWhenComplete 0 0x0

Menyebakan panggilan memblok panggilan lain sampai query selesai. Flag ini digunakan pada mode synchronous.

wbemQueryFlagShallow 1 0x1

Memaksa enumerasi untuk memasukkan juga immediate subclas (turunan pertama dari class) dari parent class tersebut.

wbemQueryFlagDeep 0 0x0

Nilai default value parameter ini. Opsi ini membuat enumerasi memasukkan semua class di dalam hirarki.

wbemFlagUseAmended Qualifiers 131072 0x20000

WMI akan mengembalikan data modifikasi class dengan definisi class dasar.

objWbemNamedValueSet

Opsional. Umumnya parameter ini tidak didefinisikan.

Jika pemanggilan berhasil, method ini mengembalikan sebuah objek SWbemObjectSet.

Setelah pemanggilan InstancesOf, objek Err bisa mengandung salah satu kode kesalahan dari kode-kode berikut ini.

Kode Kesalahan Keterangan

wbemErrAccessDenied 2147749891 0x80041003

User tidak memiliki akses untuk melihat instance dari class tersebut.

wbemErrFailed 2147749889 0x80041001

Kesalahan yang tidak diketahui.

wbemErrInvalidClass 2147749904 0x80041010

Class tidak valid

Page 19: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 19

wbemErrInvalidParameter 2147749896 0x80041008

Kesalahan pada parameter yang dimasukkan.

wbemErrOutOfMemory 2147749894 0x80041006

Memori tidak cukup.

Dengan memodifikasi skrip 1.1, akan diperoleh skrip di bawah ini untuk menghasilkan output yang sama.

Skrip 1.7. Hostname4.vbs.

Dim objLocator, objSvc, objSet, objItem

Set objLocator = CreateObject("WbemScripting.SwbemLocator")

Set objSvc = objLocator.ConnectServer(".", "root\cimv2" )

Set objSet = objSvc.InstancesOf( "win32_computersystem")

For Each objItem In objSet

sDummy = objItem.name

Next

Set objItem= Nothing

Set objSet = Nothing

Set objSvc = Nothing

Set objLocator = Nothing

wscript.echo sDummy

Sementara itu, berikut ini adalah sintaks method ExecQuery selengkapnya.

objWbemObjectSet = SwbemService.ExecQuery(

strQuery,

[ strQueryLanguage = "WQL" ],

[ iFlags = wbemFlagReturnImmediately ],

[ objWbemNamedValueSet = null ]

)

Nama Parameter Keterangan

strQuery

Harus diisi. String yang berisi perintah query. Parameter ini tidak boleh dikosongkan.

strQueryLanguage

Opsional. String yang mengandung bahasa query yang akan digunakan. Diisi dengan "WQL".

iFlags

Opsional. Integer yang menentukan perilaku query dan menentukan bagaimana pemanggilan ini berakhir/kembali. Nilai default parameter ini adalah wbemFlagReturnImmediately. Berikut ini adalah alternatif nilai yang bisa diisi.

wbemFlagForwardOnly 32 0x20

Forward-only. Operasi umumnya jauh lebih cepat dam menggunakan sedikit memori.

wbemFlagBidirectional 0

WMI akan mempertahankan pointer ke objek WMI sampai klien melepaskan enumerator-nya.

Page 20: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 20

0x0 wbemFlagReturnImmediately 16 0x10

Nilai default. Flag ini menyebabkan pemanggilan kembali dengan segera.

wbemFlagReturnWhenComplete 0 0x0

Menyebakan panggilan memblok panggilan lain sampai query selesai. Flag ini digunakan pada mode synchronous.

wbemQueryFlagPrototype 2 0x2

Digunakan untuk prototyping. Query tidak akan dijalankan tapi akan mengembalikan sebuah objek yang tampaknya serupa dengan hasil query.

wbemFlagUseAmendedQualifiers 131072 0x20000

WMI akan mengembalikan data modifikasi class dengan definisi class dasar.

objWbemNamedValueSet Opsional. Umumnya parameter ini tidak didefinisikan.

Jika pemanggilan berhasil, method ini mengembalikan sebuah objek SWbemObjectSet.

Setelah pemanggilan ExecQuery, objek Err bisa mengandung salah satu kode kesalahan dari kode-kode berikut ini.

Kode Kesalahan Keterangan

wbemErrAccessDenied 2147749891 0x80041003

User tidak memiliki akses untuk melihat hasil query.

wbemErrFailed 2147749889 0x80041001

Kesalahan yang tidak diketahui.

wbemErrInvalidParameter 2147749896 0x80041008

Kesalahan pada parameter yang dimasukkan.

wbemErrInvalidQuery 2147749911 0x80041017

Perintah query tidak valid.

wbemErrInvalidQueryType 2147749912 0x80041018

Bahasa query tidak didukung.

wbemErrOutOfMemory 2147749894 0x80041006

Memori tidak cukup.

Dengan memodifikasi skrip 1.1, bias juga didapatkan output yang sama dengan menggunakan ExecQuery seperti di bawah ini.

Skrip 1.8. Hostname5.vbs.

Dim objLocator, objSvc, objSet, objItem

Set objLocator = CreateObject("WbemScripting.SwbemLocator")

Set objSvc = objLocator.ConnectServer(".", "root\cimv2" )

Set objSet = objSvc.ExecQuery( "SELECT * FROM win32_computersystem")

For Each objItem In objSet

sDummy = objItem.name

Page 21: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 21

Next

Set objItem= Nothing

Set objSet = Nothing

Set objSvc = Nothing

Set objLocator = Nothing

wscript.echo sDummy

Method yang terakhir adalah method Get dan berikut ini adalah sintaks selengkapnya.

objWbemObject = SwbemService.Get(

[ strObjectPath = "" ],

[ iFlags = 0 ],

[ objWbemNamedValueSet = null ]

)

Nama Parameter Keterangan

strObjectPath

Opsional. String yang mengandung object path dari objek yang dituju. Jika dikosongkan, sebuah objek kosong akan dikembalikan.

iFlags

Opsional. Integer yang menentukan perilaku dari query. Parameter ini dapat berisi:

wbemFlagUseAmendedQualifiers 131072 0x20000

WMI akan mengembalikan data modifikasi class dengan definisi class dasar.

objWbemNamedValueSet Opsional. Umumnya parameter ini tidak didefinisikan.

Jika pemanggilan berhasil, method ini mengembalikan sebuah objek SWbemObject.

Setelah pemanggilan Get, objek Err bisa mengandung salah satu kode kesalahan dari kode-kode berikut ini.

Kode Kesalahan Keterangan

wbemErrAccessDenied 2147749891 0x80041003

User tidak memiliki akses ke objek tersebut.

wbemErrFailed 2147749889 0x80041001

Kesalahan yang tidak diketahui.

wbemErrInvalidParameter 2147749896 0x80041008

Kesalahan pada parameter yang dimasukkan.

wbemErrInvalidObjectPath 2147749946 0x8004103A

Path tidak valid.

wbemErrNotFound 2147749890 0x80041002

Objek yang diminta tidak bisa ditemukan.

Page 22: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 22

wbemErrOutOfMemory 2147749894 0x80041006

Memori tidak cukup.

Menggunakan Moniker Beberapa saat yang lalu Moniker telah dibahas. Pada bagian ini moniker akan dibahas lebih lanjut karena skrip-skrip di dalam artikel ini akan banyak menggunakannya, sehingga mestinya tidak ada salahnya memberikan sedikit perhatian tambahan.

Moniker mempunyai bagian sebagai berikut:

� Prefiks, yaitu “WinMgmts:”. Prefiks ini merupakan keharusan agar perintah koneksi WMI dikenal sebagai sebuah moniker.

� Seting sekuriti, ini adalah opsional.

� WMI path, ini adalah opsional.

Dengan moniker, handle dari sebuah objek WMI bisa diperoleh dengan sebaris perintah menggunakan method GetObject. Nama user dan password tidak bisa dimasukkan dalam string moniker, hal ini berarti moniker hanya bisa menggunakan mode integrated security. Jika hendak menggunakan nama user dan password selain credential yang sedang logon ke Windows atau hendak mengganti tipe otentikasi, Anda harus menggunakan method SWbemLocator.ConnectServer.

Moniker berikut ini menghasilkan objek SWbemServices yang mewakili namespace root\default, dengan impersonation, opsi wbemPrivilegeDebug diaktifkan dan opsi wbemPrivilegeSecurity dinon-aktifkan.

"winmgmts:{impersonationLevel=impersonate,(debug, !security)}!root\default"

String moniker di atas sesuai dengan bagian-bagian yang disyaratkan, yaitu:

� Prefiks: winmgmts:

� Seting sekuriti: {impersonationLevel=impersonate,(debug, !security)}

� WMI path: root\default

Tanda seru (“!”) di depan privilege mengindikasikan bahwa opsi tersebut dinon-aktifkan (disabled). Ketiadaan tanda seru di privilege opsi itu menyatakan bahwa opsi tersebut diaktifkan (enabled).

Tanda seru di depan nama komputer atau namespace perlu digunakan sebagai pemisah dari string seting sekuriti jika seting tersebut ditambahkan di dalam moniker. Nama komputer bisa diabaikan dari path yang artinya koneksi ini diarahkan ke komputer lokal. Namespace juga bisa diabaikan yang artinya mengacu ke namespace default. Nilai default tersebut disimpan di dalam Windows registry dengan regristry key HKEY_LOCAL_MACHINE\Software\ Microsoft\WBEM\Scripting\Default Namespace. Nilai registry value untuk Windows XP dan Windows 2000 adalah root\cimv2.

Teks impersonate, debug dan security pada seting sekuriti adalah nama-nama kontansta yang dikenal oleh WMI mewakili nilai-nilai tertentu. Nama-nama konstanta ini disebut string literal. Perhatikan bahwa string literal adalah case-insensitive. Penulisan dengan huruf besar, huruf kecil atau kombinasinya tidak menjadi masalah. Impersonate adalah salah satu opsi dari seting impersonation level. Opsi-opsi lainnya bisa dilihat pada tabel 1.1. Sementara itu, debug dan security adalah konstanta-konstanta dari WbemPrivilegeEnum yang merupakan opsi-opsi dari seting privilege.

Opsi-opsi privilege diperlihatkan pada tabel di bawah ini.

Page 23: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 23

Tabel 1.3. Opsi-opsi Privilege

Konstanta Nilai Keterangan

wbemPrivilegeCreateToken atau CreateToken

1 Digunakan untuk membuat primary token.

wbemPrivilegePrimaryToken atau PrimaryToken

2 Dibutuhkan untuk diberikan pada primary token dari sebuah proses.

wbemPrivilegeLockMemory atau LockMemory

3 Dibutuhkan untuk mengunci physical page dalam memori.

wbemPrivilegeIncreaseQuota atau IncreaseQuota

4 Dibutuhkan untuk memperbesar kuota yang diberikan pada sebuah proses. assigned to a process.

wbemPrivilegeMachineAccount atau MachineAccount

5 Dibutuhkan untuk membuat sebuah machine account.

wbemPrivilegeTcb atau Tcb

6 Menetapkan pemilik privilege sebagai bagian dari trusted computer base.

wbemPrivilegeSecurity atau Security

7 Dibutuhkan untuk melakukan sejumlah operasi sekuriti seperti mengontrol dan menampilkan pesan-pesan audit. Privilege ini menetapkan pemiliknya sebagai operator sekuriti.

wbemPrivilegeTakeOwnership atau TakeOwnership

8 Dibutuhkan untuk mengambil kepemilikan sebuah objek (tapi aksesnya belum diberikan).

wbemPrivilegeLoadDriver atau LoadDriver

9 Dibutuhkan untuk menyalakan atau mematikan sebuah device driver.

wbemPrivilegeSystemProfile atau SystemProfile

10 Dibutuhkan untuk mengumpulkan informasi profil dari seluruh sistem.

wbemPrivilegeSystemtime atau Systemtime

11 Dibutuhkan untuk merubah jam sistem.

wbemPrivilegeProfileSingleProcess atau ProfileSingleProcess

12 Dibutuhkan untuk mengumpulkan informasi profil dari sebuah proses.

wbemPrivilegeIncreaseBasePriority atau IncreaseBasePriority

13 Dibutuhkan untuk meningkatkan prioritas dasar sebuah proses.

wbemPrivilegeCreatePagefile atau CreatePagefile

14 Dibutuhkan untuk membuat sebuah paging file.

wbemPrivilegeCreatePermanent atau CreatePermanent

15 Dibutuhkan untuk membuat objek permanen.

wbemPrivilegeBackup atau Backup

16 Dibutuhkan untuk operasi backup.

wbemPrivilegeRestore atau Restore

17 Dibutuhkan untuk operasi restore.

wbemPrivilegeShutdown atau Shutdown

18 Dibutuhkan untuk mematikan (shut down) sistem lokal.

wbemPrivilegeDebug atau Debug

19 Dibutuhkan untuk men-debug sebuah proses.

wbemPrivilegeAudit atau Audit

20 Dibutuhkan untuk mengisi generate audit-log.

wbemPrivilegeSystemEnvironme 21 Dibutuhkan untuk merubah nonvolatile RAM dari

Page 24: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 24

nt atau SystemEnvironment

sistem yang menggunakan memori jenis ini untuk menyimpan informasi konfigurasi.

wbemPrivilegeChangeNotify atau ChangeNotify

22 Dibutuhkan untuk menerima pemberitahuan atas perubahan-perubahan file atau direktori.

wbemPrivilegeRemoteShutdown atau RemoteShutdown

23 Dibutuhkan untuk mematikan sistem melalui jaringan.

wbemPrivilegeUndock atau Undock

24 Dibutuhkan untuk memindahkan komputer dari dudukannya (docking station).

wbemPrivilegeSyncAgent atau SyncAgent

25 Dibutuhkan untuk menyelaraskan (synchronize) data.

wbemPrivilegeEnableDelegation atau EnableDelegation

26 Dibutuhkan untuk mengaktifkan komputer dan user account untuk delegasi trusted.

Di bawah ini diperlihatkan beberapa contoh string moniker yang valid:

� Moniker ini mengarah ke namespace default pada komputer lokal. Sebuah objek SWbemServices akan dikembalikan.

"WinMgmts:"

� Moniker ini mengarah ke namespace default pada komputer bernama myServer. Sebuah objek SWbemServices akan dikembalikan.

"WinMgmts:\\myServer"

� Moniker ini mengarah ke namespace root\cimv2 pada komputer lokal. Sebuah objek SWbemServices akan dikembalikan.

"WinMgmts:root\cimv2"

� Moniker ini mengarah ke namespace root\cimv2 pada komputer bernama myServer. Sebuah objek SWbemServices akan dikembalikan.

"WinMgmts:\\myServer\root\cimv2"

� Moniker ini mengacu ke class Win32_LogicalDisk dari namespace default dalam komputer lokal. Sebuah objek SWbemObject akan dikembalikan.

"WinMgmts:{impersonationLevel=impersonate}" & _

"!Win32_LogicalDisk"

� Moniker ini mengacu ke class Win32_LogicalDisk dalam namespace root\cimv2 di komputer lokal. Sebuah objek SWbemObject akan dikembalikan.

"WinMgmts:{impersonationLevel=impersonate}" & _

"!root\cimv2:Win32_LogicalDisk"

� Moniker ini mengacu ke class Win32_LogicalDisk dalam namespace root\cimv2 di komputer myServer. Sebuah objek SWbemObject akan dikembalikan.

"WinMgmts:{impersonationLevel=impersonate}" & _

"!\\myServer\root\cimv2:Win32_LogicalDisk"

� Moniker ini mengacu ke objek Win32_LogicalDisk berkaitan dengan drive C: di dalam namespace default dari komputer lokal. Sebuah objek SWbemObject akan dikembalikan.

"WinMgmts::Win32_LogicalDisk='C:'"

� Moniker ini mengacu ke objek Win32_LogicalDisk berkaitan dengan drive C: di dalam namespace default dari komputer lokal. Sebuah objek SWbemObject akan dikembalikan.

Page 25: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION 25

"WinMgmts:{impersonationLevel=impersonate}" & _

"!Win32_LogicalDisk="C:""

� Moniker ini mengacu ke objek of Win32_LogicalDisk berkaitan dengan drive C: di dalam namespace root\cimv2 dari komputer lokal. Sebuah objek SWbemObject akan dikembalikan.

"WinMgmts:{impersonationLevel=impersonate}" & _

"!root\cimv2:Win32_LogicalDisk="C:""

� Moniker ini mengacu ke objek Win32_LogicalDisk berkaitan dengan drive C: dalam namespace root\cimv2 di komputer myServer. Sebuah objek SWbemObject akan dikembalikan.

"WinMgmts:{impersonationLevel=impersonate}" & _

"!\\myServer\root\cimv2:Win32_LogicalDisk= "C:""

� Moniker ini menetapkan impersonation level sebagai impersonate dan mengaktifkan privilege wbemPrivilegeDebug.

"WinMgmts:{impersonationLevel=impersonate, (Debug)}"

� Moniker ini menetapkan impersonation level sebagai impersonate dan mengaktifkan privilege wbemPrivilegeDebug dan menon-aktifkan wbemPrivilegeShutDown.

"WinMgmts:{impersonate,(Debug,!Shutdown)}"

Catatan:

Method GetObject tidak bisa dipanggil menggunakan VBScript dan JScript yang disisipkan pada halaman HTML (client side scripting) karena Microsoft Internet Explorer tidak mengijinkannya untuk alasan keamanan.

Menggunakan WMI SDK Software Development Kit untuk WMI adalah perangkat yang bisa digunakan para programer untuk mempermudah pekerjaannya dalam membangun aplikasi yang berhubungan dengan WMI. WMI SDK ini berisi program-program yang disebut dengan WMI Tools.

Menginstal WMI Tools bukanlah suatu keharusan, tapi program-program di dalamnya bisa sangat membantu. WMI SDK bisa diperoleh dari situs:

http://www.microsoft.com/downloads

Program instalasinya bisa dicari dengan kata kunci “WMI Administrative Tools”.

Berikut ini adalah program-program yang ada di dalam WMI Tools:

� WMI Object Browser

Program ini digunakan untuk melihat objek-objek di dalam CIM repository. Anda bisa merubah nilai-nilai property dan menjalankan beberapa method.

� WMI CIM Studio

Program ini digunakan untuk melihat class-class di dalam CIM repository. Anda juga bisa merubah class-class, property, instance dan menjalankan method.

� WMI Event Registration Tool

Program ini adalah antar muka grafis untuk mengkonfigur event consumer permanen. Dengan too ini pengguna dapat membuat atau melihat instance-instance dari event consumer, membuat filter dan binding .

� WMI Event Viewer

Page 26: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Program ini menampilkan eventmenjalankan WMI Event Registration Tool dari WMI Event Viewer.

Bersama keempat program ini, disertak..\Program Files\WMI Tools\wmitools.chm

Dari keempat program di atas, WMI Object Browser adalah program yang Berikut ini adalah langkah-langkah untuk menjalankannya.

1. Jalankan WMI Object Browser

Gambar 1.

Menu di atas akan menjalankan program IE dan membuka file BROWSER.HTM. Pada IE versiterakhir atau jika Anda menginstal service pack terbaru dari Windows, seperti di bawah ini akan muncul

Pesan ini muncul karena halaman BROWSER.HTM mengandung sebuah komponen ActiveX. IE mendeteksi hal tersebut dan menonlangkah pencegahan yang dilakukan Microsoft dengan menutup celah terhadap kompokomponen di Internet yang berpotensial merusak sistem.

Karena aksi pencegahan ini maka WMI Object Browser yang juga sebuah kontrol ActiveX batal dijalankan. Namun dengan seijin Anda , ActiveX yang bersangkutan masih dapat dijalankan. Klik bar pada window IE seperti yang ditunjukkan oleh gambar di bawah ini.

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Program ini menampilkan event-event dari semua instance dari registered consumermenjalankan WMI Event Registration Tool dari WMI Event Viewer.

Bersama keempat program ini, disertakan juga sebuah dokumentasi WMI Tools di dalam direktori wmitools.chm.

Dari keempat program di atas, WMI Object Browser adalah program yang akan langkah untuk menjalankannya.

WMI Object Browser dari Start ���� All Programs ���� WMI Tools.

Gambar 1.8. Menjalankan WMI Objeck Browser.

Menu di atas akan menjalankan program IE dan membuka file BROWSER.HTM. Pada IE versiterakhir atau jika Anda menginstal service pack terbaru dari Windows,

akan muncul.

Gambar 1.9. Pesan peringatan dari IE.

san ini muncul karena halaman BROWSER.HTM mengandung sebuah komponen ActiveX. IE mendeteksi hal tersebut dan menon-aktifkan aktivasinya untuk alasan keamanan. Hal ini adalah langkah pencegahan yang dilakukan Microsoft dengan menutup celah terhadap kompokomponen di Internet yang berpotensial merusak sistem.

Karena aksi pencegahan ini maka WMI Object Browser yang juga sebuah kontrol ActiveX batal dijalankan. Namun dengan seijin Anda , ActiveX yang bersangkutan masih dapat dijalankan. Klik

ow IE seperti yang ditunjukkan oleh gambar di bawah ini.

26

registered consumer. Anda dapat

an juga sebuah dokumentasi WMI Tools di dalam direktori

akan paling sering digunakan.

Menu di atas akan menjalankan program IE dan membuka file BROWSER.HTM. Pada IE versi-versi terakhir atau jika Anda menginstal service pack terbaru dari Windows, maka pesan peringatan

san ini muncul karena halaman BROWSER.HTM mengandung sebuah komponen ActiveX. IE aktifkan aktivasinya untuk alasan keamanan. Hal ini adalah

langkah pencegahan yang dilakukan Microsoft dengan menutup celah terhadap komponen-

Karena aksi pencegahan ini maka WMI Object Browser yang juga sebuah kontrol ActiveX batal dijalankan. Namun dengan seijin Anda , ActiveX yang bersangkutan masih dapat dijalankan. Klik

Page 27: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Gambar 1.

Dari menu popup, pilih “Allow Blocked Content

Gambar 1.

Sekali lagi sebuah window dialog akan muncul meminta konfirmasi. Jawab dengan “

Gambar 1.

Window IE akan di-refresh dan kali ini kontrol ActiveX akan dijalankan.

Klik pada bar ini

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Gambar 1.10. Informasi IE untuk komponen yang diblok.

Allow Blocked Content”.

Gambar 1.11. Mengaktifkan komponen yang diblok.

window dialog akan muncul meminta konfirmasi. Jawab dengan “

Gambar 1.12. Konfirmasi untuk menjalankan kontrol ActiveX.

refresh dan kali ini kontrol ActiveX akan dijalankan.

27

window dialog akan muncul meminta konfirmasi. Jawab dengan “Yes”.

Konfirmasi untuk menjalankan kontrol ActiveX.

Page 28: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

2. WMI Object Browser akan menampilkan sebuah window dialognamespace yang ingin dituju. Ingat proses koneksi ke WMI pada penjelasan sebelumnya? WMI path atau nama namespace yang akan dituju

Gambar 1.

Secara default WMI Object Browser registry komputer, pada contoh ini adalah rootnamespace yang lain. Silakan baca kembali subdaftar nama-nama namespace yang valid.

Untuk saat ini, mari gunakan root

3. Selanjutnya WMI Object Browser membuat koneksi WMI ke komputer lokal dan merujuk ke namespace yang ditetapkan pada window dialog sebelumnya. Tampilandiperlihatkan pada gambar di bawah ini. Secara default WMI Object Browser mengakses objek Win32_ComputerSystem di dalam namespace root

Gambar 1.

Di area kanan dari window ini, tampak propertyadalah objek Win32_ComputerSystem).method-method di dalam objek ini. Untuk saat ini, kita hanya fokus pada property.

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

WMI Object Browser akan menampilkan sebuah window dialog untuknamespace yang ingin dituju. Ingat proses koneksi ke WMI pada penjelasan sebelumnya? WMI path atau nama namespace yang akan dituju harus ditetapkan.

Gambar 1.13. Koneksi ke sebuah namespace.

Secara default WMI Object Browser akan menuju namespace default yang tercatat di Windows komputer, pada contoh ini adalah root\CIMV2. Isian itu boleh diganti

namespace yang lain. Silakan baca kembali sub-bab 1.5 mengenai “Struktur WMI” di mannama namespace yang valid.

Untuk saat ini, mari gunakan root\CIMV2. Klik tombol OK.

Selanjutnya WMI Object Browser membuat koneksi WMI ke komputer lokal dan merujuk ke namespace yang ditetapkan pada window dialog sebelumnya. Tampilandiperlihatkan pada gambar di bawah ini. Secara default WMI Object Browser mengakses objek Win32_ComputerSystem di dalam namespace root\CIMV2.

Gambar 1.14. Objek Win32_ComputerSystem.

Di area kanan dari window ini, tampak property-property dari objek yang diakses (dalam contoh ini adalah objek Win32_ComputerSystem). Anda juga bisa meng-klik tab Methods untuk melihat

method di dalam objek ini. Untuk saat ini, kita hanya fokus pada property.

28

untuk memasukkan nama namespace yang ingin dituju. Ingat proses koneksi ke WMI pada penjelasan sebelumnya? Bahwa

akan menuju namespace default yang tercatat di Windows boleh diganti untuk menuju

bab 1.5 mengenai “Struktur WMI” di mana terdapat

Selanjutnya WMI Object Browser membuat koneksi WMI ke komputer lokal dan merujuk ke namespace yang ditetapkan pada window dialog sebelumnya. Tampilan WMI Object Browser diperlihatkan pada gambar di bawah ini. Secara default WMI Object Browser mengakses objek

erty dari objek yang diakses (dalam contoh ini klik tab Methods untuk melihat

method di dalam objek ini. Untuk saat ini, kita hanya fokus pada property.

Page 29: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Nama-nama property yang tampak pada windproperty yang ada di dalam class yang bersangkutan. Sebagai contoh, property Win32_ComputerSystembetapa program ini sangat memudahkan para

Fasilitas lainnya yang sangat berguna adalah window bantuan. Dengan mentanda tanya pada sudut kiriinformasi-informasi yang san

Catatan:

Keberadaan class, property dan method mungkin akan berbeda pada sistem operasi Windows yang berlainan. Sebagai contoh, Windows 2000 tidak mengenal classdimana class tersebut ada pada Windows XP dan Windows 2003 Server.

Untuk beralih ke class lain atau jika ingin melihat daftar class yang ada di dalam namespace tersebut, klik ikon bergambar teropong seperti diperlihatkan di bawah ini.

Gambar 1.16. Beralih ke class lain atau melihat daftar class.

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

nama property yang tampak pada window tersebut ditulis sama persis dengan namaproperty yang ada di dalam class yang bersangkutan. Sebagai contoh, property Win32_ComputerSystem.Caption akan tampak sebagai Caption pada daftar tersebut. Bayangkan betapa program ini sangat memudahkan para programer dalam menjelajah class

Fasilitas lainnya yang sangat berguna adalah window bantuan. Dengan mentanda tanya pada sudut kiri-atas, WMI Object Browser akan memunculkan sebuah window berisi

informasi yang sangat lengkap mengenai property-property di dalam class tersebut.

Gambar 1.15. Window bantuan.

Keberadaan class, property dan method mungkin akan berbeda pada sistem operasi Windows yang berlainan. Sebagai contoh, Windows 2000 tidak mengenal class Win32_PingStatus dimana class tersebut ada pada Windows XP dan Windows 2003 Server.

Untuk beralih ke class lain atau jika ingin melihat daftar class yang ada di dalam namespace tersebut, klik ikon bergambar teropong seperti diperlihatkan di bawah ini.

Gambar 1.16. Beralih ke class lain atau melihat daftar class.

29

ow tersebut ditulis sama persis dengan nama-nama property yang ada di dalam class yang bersangkutan. Sebagai contoh, property

.Caption akan tampak sebagai Caption pada daftar tersebut. Bayangkan programer dalam menjelajah class-class WMI.

Fasilitas lainnya yang sangat berguna adalah window bantuan. Dengan men-klik ikon bergambar atas, WMI Object Browser akan memunculkan sebuah window berisi

property di dalam class tersebut.

Keberadaan class, property dan method mungkin akan berbeda pada sistem operasi Windows Win32_PingStatus

Untuk beralih ke class lain atau jika ingin melihat daftar class yang ada di dalam namespace

Gambar 1.16. Beralih ke class lain atau melihat daftar class.

Page 30: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

4. Untuk beralih ke namespace lain atau jika ingin membuat koneksi ke komputer lain, klik ikon bergambar komputer seperti diperlihatkan di bawah ini.

Gambar 1.

Jika hendak membuat koneksi ke komputer lain, Anda diminta untuk memasukkan identitas user. Jika pilihannya adalah trusted connection, beri tanda pada opsi “jika hendak menggunakan credentiaUsername dan password

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Gambar 1.17. Daftar class.

Untuk beralih ke namespace lain atau jika ingin membuat koneksi ke komputer lain, klik ikon bergambar komputer seperti diperlihatkan di bawah ini.

Gambar 1.18. Memilih komputer dan namespace.

Jika hendak membuat koneksi ke komputer lain, Anda diminta untuk memasukkan identitas user. Jika pilihannya adalah trusted connection, beri tanda pada opsi “Login as current userjika hendak menggunakan credential lain maka hilangkan tanda pada opsi tersebut dan isilah kolom

password.

30

Untuk beralih ke namespace lain atau jika ingin membuat koneksi ke komputer lain, klik ikon

Jika hendak membuat koneksi ke komputer lain, Anda diminta untuk memasukkan identitas user. Login as current user”. Selain itu,

l lain maka hilangkan tanda pada opsi tersebut dan isilah kolom

Page 31: MAI01-Mengenal Windows Management Instrumentationtobuku.com/docs/MAI01-Mengenal Windows Management... · data, merubah dan memantau konfigurasi pada desktop dan server, aplikasi-aplikasi,

www.tobuku.com

WMI-FD-06011 – MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Gambar 1.

Kecuali Anda adalah seorang administrator jaringan atau termasuk dalam grup Administrators dalam komputer yang bersangkutan, mungkin Anda tidak dapat mengakses komputer lain karena otoritas yang terbatas.

WMI SDK menuntaskan pengenalan Anda pada WMI. Bagian ini mengawali langkah Anda untuk eksplorasi lebih lanjut, mengenali class-class WMI dan atributnya. Pada untuk menerapkan pengetahuanmanajemen aset IT seperti yang diutarakan pada awal

MENGENAL WINDOWS MANAGEMENT INSTRUMENTATION

Gambar 1.19. Membuat koneksi ke komputer lain.

Kecuali Anda adalah seorang administrator jaringan atau termasuk dalam grup Administrators dalam bersangkutan, mungkin Anda tidak dapat mengakses komputer lain karena otoritas

WMI SDK menuntaskan pengenalan Anda pada WMI. Bagian ini mengawali langkah Anda untuk eksplorasi class WMI dan atributnya. Pada bagian-bagian berikutnya Anda akan dipandu

untuk menerapkan pengetahuan-pengetahuan dasar yang baru saja diperoleh guna membuat aplikasi manajemen aset IT seperti yang diutarakan pada awal artikel ini.

31

Kecuali Anda adalah seorang administrator jaringan atau termasuk dalam grup Administrators dalam bersangkutan, mungkin Anda tidak dapat mengakses komputer lain karena otoritas

WMI SDK menuntaskan pengenalan Anda pada WMI. Bagian ini mengawali langkah Anda untuk eksplorasi berikutnya Anda akan dipandu

pengetahuan dasar yang baru saja diperoleh guna membuat aplikasi