Bagikan melalui


Objek SWbemServices

Anda dapat menggunakan metode objek SWbemServices untuk melakukan operasi terhadap namespace layanan pada host lokal atau host jarak jauh. Objek ini tidak dapat dibuat oleh panggilan VBScript CreateObject .

Anggota

Objek SWbemServices memiliki jenis anggota ini:

Metode

Objek SWbemServices memiliki metode ini.

Metode Deskripsi
AssociatorsOf Mengambil instans sumber daya terkelola yang terkait dengan sumber daya tertentu melalui satu atau beberapa kelas asosiasi. Anda menyediakan jalur objek untuk titik akhir asal, dan AssociatorsOf mengembalikan sumber daya terkelola di titik akhir yang berlawanan. Metode AssociatorsOf melakukan fungsi yang sama dengan yang dilakukan kueri WQL "ASSOCIATORS OF".
AssociatorsOfAsync Secara asinkron mengembalikan kumpulan objek (kelas atau instans) yang terkait dengan objek tertentu.
Hapus Menghapus instans sumber daya terkelola (atau definisi kelas dari repositori CIM).
DeleteAsync Secara asinkron menghapus kelas atau instans yang ditentukan dalam jalur objek.
ExecMethod Menyediakan cara alternatif untuk menjalankan metode yang ditentukan oleh definisi kelas sumber daya terkelola. Terutama digunakan dalam situasi di mana bahasa skrip tidak mendukung parameter. Misalnya, JScript tidak mendukung parameter.
ExecMethodAsync Secara asinkron menjalankan metode yang diekspor oleh penyedia metode.
ExecNotificationQuery Menjalankan kueri langganan peristiwa untuk menerima peristiwa. Kueri langganan peristiwa adalah kueri yang menentukan perubahan pada lingkungan terkelola yang ingin Anda pantau. Ketika perubahan terjadi, infrastruktur WMI memberikan peristiwa yang menjelaskan perubahan pada skrip panggilan.
ExecNotificationQueryAsync Secara asinkron menjalankan kueri untuk menerima peristiwa.
ExecQuery Menjalankan kueri untuk mengambil kumpulan instans sumber daya yang dikelola WMI (atau definisi kelas). ExecQuery dapat digunakan untuk mengambil kumpulan instans yang difilter yang cocok dengan kriteria yang Anda tentukan dalam kueri yang diteruskan ke ExecQuery.
ExecQueryAsync Secara asinkron menjalankan kueri untuk mengambil objek.
Dapatkan Mengambil satu instans sumber daya terkelola (atau definisi kelas) berdasarkan jalur objek.
GetAsync Secara asinkron mengambil objek, yaitu definisi kelas atau instans, berdasarkan jalur objek.
InstancesOf Mengambil semua instans sumber daya terkelola berdasarkan nama kelas. Secara default, InstancesOf melakukan pengambilan mendalam. Artinya, InstancesOf mengambil instans sumber daya yang diidentifikasi oleh nama kelas yang diteruskan ke metode dan juga mengambil semua instans semua sumber daya yang merupakan subkelas (didefinisikan di bawah) dari kelas target.
InstancesOfAsync Secara asinkron mengembalikan instans kelas tertentu sesuai dengan kriteria pilihan yang ditentukan pengguna.
ReferensiKe Mengembalikan semua asosiasi yang mereferensikan sumber daya tertentu. Cara terbaik untuk memahami ReferencesTo adalah dengan membandingkannya dengan metode AssociatorsOf . AssociatorsOf mengembalikan sumber daya dinamis yang berada di ujung asosiasi yang berlawanan. ReferencesTo mengembalikan asosiasi itu sendiri. Metode ReferencesTo melakukan fungsi yang sama dengan yang dilakukan kueri WQL "REFERENCES OF".
ReferencesToAsync Secara asinkron mengembalikan koleksi semua kelas atau instans asosiasi yang merujuk ke kelas atau instans tertentu.
SubkelasOf Mengambil semua subkelas kelas tertentu dari repositori CIM.
SubclassesOfAsync Secara asinkron mengembalikan kumpulan subkelas untuk kelas tertentu.

Properti

Objek SWbemServices memiliki properti ini.

Properti Jenis akses Deskripsi
Keamanan_
Baca-saja
Digunakan untuk mendapatkan atau mengatur pengaturan keamanan untuk objek SWbemServices .

Keterangan

Metode dapat dipanggil dalam mode sinkron, mode asinkron, atau mode semisinkron. Untuk informasi selengkapnya, lihat Memanggil Metode.

Gambaran Umum

SWbemServices melayani dua peran utama. Pertama, objek SWbemServices mewakili koneksi terautentikasi ke namespace WMI pada komputer target. Kedua, SWbemServices adalah objek Automation yang Anda gunakan untuk mengambil sumber daya yang dikelola WMI. Anda dapat memperoleh referensi ke objek SWbemServices dengan salah satu dari dua cara:

  • Seperti yang ditunjukkan di sebagian besar skrip WMI yang disajikan sejauh ini, Anda dapat menggunakan fungsi VBScript GetObject dalam kombinasi dengan moniker WMI "winmgmts:". Contoh berikut adalah bentuk paling sederhana dari koneksi WMI. Contoh terhubung ke namespace default (biasanya "Root\CIMv2") di komputer lokal:

    Set objSWbemServices = GetObject("winmgmts:")

  • Anda juga dapat menggunakan metode ConnectServer objek SWbemLocator untuk mendapatkan referensi ke objek SWbemServices.

Setelah Anda mendapatkan referensi ke objek SWbemServices , Anda menggunakan referensi objek untuk memanggil 1 dari 18 metode yang tersedia menggunakan SWbemServices. SWbemServices dapat mengembalikan salah satu dari tiga objek pustaka skrip WMI yang berbeda (SWbemObjectSet, SWbemObject, atau SWbemEventSource), tergantung pada metode yang Anda panggil. Mengetahui jenis objek yang dikembalikan setiap metode akan membantu Anda menentukan langkah berikutnya yang harus diambil skrip Anda. Misalnya, jika Anda mendapatkan kembali SWbemObjectSet, Anda harus menghitung koleksi untuk mengakses setiap SWbemObject dalam koleksi. Jika Anda mendapatkan kembali SWbemObject, Anda dapat segera mengakses metode dan properti objek tanpa menghitung koleksi terlebih dahulu.

Mode Operasi

SWbemServices mendukung tiga mode operasi: sinkron, asinkron, dan semisinkron.

  • Sinkron. Dalam mode sinkron, blok skrip Anda (jeda) hingga metode SWbemServices selesai. Skrip Anda tidak hanya menunggu, tetapi dalam kasus di mana WMI mengambil instans sumber daya terkelola, WMI membangun seluruh SWbemObjectSet dalam memori sebelum byte pertama data dikembalikan ke skrip panggilan. Ini dapat memiliki efek buruk pada performa skrip dan pada komputer yang menjalankan skrip. Misalnya, secara sinkron mengambil ribuan peristiwa dari Log Peristiwa Windows dapat memakan waktu lama dan menggunakan banyak memori. Untuk alasan ini, operasi sinkron tidak disarankan kecuali untuk tiga metode (Hapus, ExecMethod, dan Get) yang sinkron secara default. Metode ini tidak mengembalikan himpunan data besar, sehingga operasi semisinkron tidak diperlukan.

  • Asinkron. Dalam mode asinkron, skrip Anda memanggil salah satu dari sembilan metode asinkron dan segera kembali. Artinya, segera setelah metode asinkron dipanggil, skrip Anda melanjutkan menjalankan baris kode berikutnya. Untuk menggunakan metode asinkron, skrip Anda harus terlebih dahulu membuat objek SWbemSink dan subroutine khusus yang disebut penanganan aktivitas. WMI melakukan operasi asinkron dan memberi tahu skrip dengan memanggil subroutine penanganan aktivitas ketika operasi selesai.

  • Semisinkron. Mode semisinkron adalah kompromi antara sinkron dan asinkron. Operasi semisinkron menawarkan performa yang lebih baik daripada operasi sinkron, tetapi tidak memerlukan pengetahuan tambahan dan langkah-langkah pembuatan skrip yang diperlukan untuk menangani operasi asinkron. Ini adalah jenis operasi default untuk sebagian besar kueri WMI.

    Dalam mode semisinkron, skrip Anda memanggil salah satu dari enam metode pengambilan data dan segera kembali. WMI mengambil sumber daya terkelola di latar belakang saat skrip Anda terus berjalan. Saat sumber daya diambil, sumber daya segera dikembalikan ke skrip Anda dengan cara SWbemObjectSet. Anda dapat mulai mengakses sumber daya terkelola tanpa menunggu seluruh koleksi dirakit.

    Ada peringatan untuk operasi semisinkron ketika Anda bekerja dengan sumber daya terkelola yang memiliki banyak instans (banyak yang berarti lebih besar dari 1.000), seperti CIM_DataFile dan Win32_NTLogEvent. Peringatan adalah hasil dari bagaimana WMI menangani instans sumber daya terkelola. Untuk setiap instans sumber daya terkelola, WMI membuat dan menyimpan cache objek SWbemObject . Ketika sejumlah besar instans ada untuk sumber daya terkelola, pengambilan instans dapat memonopoli sumber daya yang tersedia, mengurangi performa skrip dan komputer.

    Untuk mengatasi masalah ini, Anda dapat mengoptimalkan panggilan metode semisinkron menggunakan bendera wbemFlagForwardOnly . Bendera wbemFlagForwardOnly , dikombinasikan dengan bendera wbemFlagReturnImmediately (bendera semisinkron default), memberi tahu WMI untuk mengembalikan SWbemObjectSet khusus maju, yang menghilangkan masalah performa himpunan data besar. Namun, menggunakan bendera wbemFlagForwardOnly dilengkapi dengan biaya. SWbemObjectSet khusus maju hanya dapat dijumlahkan sekali. Setelah setiap SWbemObject dalam SWbemObjectSet khusus maju diakses, memori yang dialokasikan untuk instans dirilis.

Dengan pengecualian metode Hapus, ExecMethod, Get, dan sembilan asinkron, semisinkron adalah mode operasi default dan direkomendasikan.

Metode yang umum digunakan

Metode yang paling sering digunakan dalam skrip administrasi sistem adalah InstancesOf, ExecQuery, Get, dan ExecNotificationQuery. Meskipun sering digunakan, InstancesOf belum tentu merupakan cara yang disarankan untuk mengambil informasi (meskipun bisa dibilang cara termampu).

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista
Server minimum yang didukung
Windows Server 2008
Header
Wbemdisp.h
Pustaka jenis
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemServices
IID
IID_ISWbemServices

Lihat juga

Membuat Skrip Objek API

Memanggil Metode