Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Alat Generator Kelas Manajemen yang Ditik dengan Kuat mengaktifkan Anda menghasilkan kelas terkendali yang terikat awal dengan cepat untuk kelas Windows Management Instrumentation (WMI) tertentu. Kelas yang dihasilkan menyederhanakan kode yang harus Anda tulis untuk mengakses instans kelas WMI.
Sintaks
mgmtclassgen
WMIClass [options]
| Argumen | Deskripsi |
|---|---|
| WMIClass | Kelas Windows Management Instrumentation untuk menghasilkan kelas terkendali yang terikat awal. |
| Opsi | Deskripsi |
|---|---|
| Bahasa /l | Menentukan bahasa untuk menghasilkan kelas terkendali yang terikat awal. Anda dapat menentukan CS (C#; default), VB (Visual Basic), MC (C++), atau JS (JScript) sebagai argumen bahasa. |
| Mesin /m | Menentukan komputer yang akan disambungkan, tempat kelas WMI berada. Defaultnya adalah komputer lokal. |
| /njalur | Menentukan jalur ke namespace layanan WMI yang memuat kelas WMI. Jika Anda tidak menentukan opsi ini, alat ini menghasilkan kode untuk WMIClass di namespace layanan Root\cimv2 default. |
| /oclassnamespace | Menentukan namespace layanan .NET untuk menghasilkan kelas kode terkelola. Jika Anda tidak menentukan opsi ini, alat ini menghasilkan namespace layanan menggunakan namespace layanan WMI dan awalan skema. Awalan skema adalah bagian dari nama kelas yang mendahului karakter garis bawah. Contohnya, untuk kelas Win32_OperatingSystem di namespace layanan Root\cimv2 , alat akan menghasilkan kelas di ROOT.CIMV2.Win32. |
| /pfilepath | Menentukan jalur ke file untuk menyimpan kode yang dihasilkan. Jika Anda tidak menentukan opsi ini, alat akan membuat file di direktori saat ini. File ini menamai kelas dan file tempat menghasilkan kelas menggunakan argumen WMIClass. Nama kelas dan file sama dengan nama WMIClass. Jika WMIClass memuat karakter garis bawah, alat ini menggunakan bagian dari nama kelas yang mengikuti karakter garis bawah. Contohnya, jika nama WMIClass dalam format Win32_LogicalDisk, kelas dan file yang dihasilkan diberi nama “logicaldisk”. Jika file sudah ada, alat tersebut menimpa file yang ada. |
| Kata sandi /pw | Menentukan kata sandi yang akan digunakan ketika pengelogan ke komputer yang ditentukan oleh opsi /m . |
| /unama pengguna | Menentukan nama pengguna yang akan digunakan ketika pengelogan ke komputer yang ditentukan oleh opsi /m . |
| /? | Menampilkan sintaks perintah dan opsi untuk alat ini. |
Keterangan
Mgmtclassgen.exe menggunakan metode ManagementClass.GetStronglyTypedClassCode. Oleh karena itu, Anda dapat menggunakan penyedia kode kustom apa pun untuk menghasilkan kode dalam bahasa terkendali selain C#, Visual Basic, dan JScript.
Perhatikan bahwa kelas yang dihasilkan terikat dengan skema yang dihasilkan. Jika skema yang mendasar berubah, Anda harus melakukan regenerasi kelas jika ingin mencerminkan perubahan pada skema.
Tabel berikut memperlihatkan cara jenis WMI Common Information Model (CIM) memetakan ke jenis data di kelas yang dihasilkan:
| Jenis CIM | Jenis data di kelas yang dihasilkan |
|---|---|
| CIM_SINT8 | SByte |
| CIM_UINT8 | Byte |
| CIM_SINT16 | Int16 |
| CIM_UINT16 | UInt16 |
| CIM_SINT32 | Int32 |
| SIM_UINT32 | UInt32 |
| CIM_SINT64 | Int64 |
| CIM_UINT64 | UInt64 |
| CIM_REAL32 | Satu |
| CIM_REAL64 | Laju |
| CIM_BOOLEAN | Boolean |
| CIM_String | String |
| CIM_DATETIME | DateTime atau TimeSpan |
| CIM_REFERENCE | ManagementPath |
| CIM_CHAR16 | Char |
| CIM_OBJECT | ManagementBaseObject |
| CIM_IUNKNOWN | Objek |
| CIM_ARRAY | Array objek yang disebutkan di atas |
Perhatikan perilaku berikut ketika Anda membuat kelas WMI:
Dimungkinkan bagi properti atau metode publik standar untuk memiliki nama yang sama dengan properti atau metode yang ada. Jika ini terjadi, alat mengubah nama properti atau metode di kelas yang dihasilkan untuk menghindari konflik penamaan.
Dimungkinkan untuk nama properti atau metode di kelas yang dihasilkan menjadi kata kunci dalam bahasa pemrogram target. Jika ini terjadi, alat mengubah nama properti atau metode di kelas yang dihasilkan untuk menghindari konflik penamaan.
Di WMI, kualifikasi adalah pengubah yang memuat informasi untuk menjelaskan kelas, instans, properti, atau metode. WMI menggunakan kualifikasi standar seperti Baca, Tulis, dan
Keyuntuk menjelaskan properti di kelas yang dihasilkan. Misalnya, properti yang dimodifikasi denganReadkualifikasi hanya didefinisikan dengan aksesor propertigetdi kelas yang dihasilkan. Karena properti yang ditandai denganReadkualifikasi dimaksudkan untuk baca-saja,setaksesor tidak ditentukan.Properti numerik dapat dimodifikasi oleh dan
ValuesValueMapskualifikasi untuk menunjukkan bahwa properti hanya dapat diatur ke nilai yang diizinkan yang ditentukan. Enumerasi dihasilkan dengan iniValuesdanValueMapsdan properti dipetakan ke enumerasi.WMI menggunakan istilah database tunggal untuk menggambarkan kelas yang hanya dapat memiliki satu instans. Oleh karena itu, konstruktor tanpa parameter untuk kelas database tunggal akan berinisial kelas ke satu-satunya instans kelas.
Kelas WMI dapat memiliki properti yang merupakan objek. Ketika Anda menghasilkan kelas yang ditik dengan kuat untuk jenis kelas WMI ini, Anda harus mempertimbangkan untuk menghasilkan kelas yang ditik dengan kuat untuk jenis properti objek yang disematkan. Ini akan mengizinkan Anda untuk mengakses objek yang disematkan dengan cara yang ditik dengan kuat. Perhatikan bahwa kode yang dihasilkan mungkin tidak dapat mendeteksi jenis objek yang disematkan. Dalam hal ini, komentar akan dibuat dalam kode yang dihasilkan untuk memberi tahu Anda tentang masalah ini. Kemudian, Anda dapat mengubah kode yang dihasilkan untuk mengetik properti ke kelas lain yang dihasilkan.
Di WMI, nilai data dari jenis data CIM_DATETIME dapat mewakili tanggal dan waktu tertentu atau interval waktu. Jika nilai data mewakili tanggal dan waktu, jenis data di kelas yang dihasilkan adalah DateTime. Jika nilai data mewakili interval waktu, jenis data di kelas yang dihasilkan adalah TimeSpan.
Anda dapat secara bergantian menghasilkan kelas yang ditik dengan kuat menggunakan Ekstensi Manajemen Penjelajah Server di Visual Studio .NET.
Untuk mendapatkan informasi selengkapnya tentang WMI, lihat topik Windows Management Instrumentation dalam dokumentasi SDK Platform.
Contoh
Perintah berikut menghasilkan kelas terkendali dalam kode C# untuk kelas WMI Win32_LogicalDisk di namespace layanan Root\cimv2. Alat ini menulis kelas terkendali ke file sumber di c:\disk.cs di namespace layanan ROOT.CIMV2.Win32.
mgmtclassgen Win32_LogicalDisk /n root\cimv2 /l CS /p c:\disk.cs
Contoh kode berikut menunjukkan cara menggunakan kelas yang dihasilkan secara terprogram. Pertama, instans kelas dijumlahkan dan jalur dicetak. Berikutnya, instans kelas yang dihasilkan yang akan diinisialisasi dibuat dengan instans WMI.
Process adalah kelas yang dihasilkan untuk Win32_Process dan LogicalDisk merupakan kelas yang dihasilkan untuk Win32_LogicalDisk di namespace layanan Root\cimv2.
Imports System
Imports System.Management
Imports ROOT.CIMV2.Win32
Public Class App
Public Shared Sub Main()
' Enumerate instances of the Win32_process.
' Print the Name property of the instance.
Dim ps As Process
For Each ps In Process.GetInstances()
Console.WriteLine(ps.Name)
Next ps
' Initialize the instance of LogicalDisk with
' the WMI instance pointing to logical drive d:.
Dim dskD As New LogicalDisk(New _
ManagementPath("win32_LogicalDisk.DeviceId=""d:"""))
Console.WriteLine(dskD.Caption)
End Sub
End Class
using System;
using System.Management;
using ROOT.CIMV2.Win32;
public class App
{
public static void Main()
{
// Enumerate instances of the Win32_process.
// Print the Name property of the instance.
foreach(Process ps in Process.GetInstances())
{
Console.WriteLine(ps.Name);
}
// Initialize the instance of LogicalDisk with
// the WMI instance pointing to logical drive d:.
LogicalDisk dskD = new LogicalDisk(new ManagementPath(
"win32_LogicalDisk.DeviceId=\"d:\""));
Console.WriteLine(dskD.Caption);
}
}