Bagikan melalui


Mgmtclassgen.exe (Generator Kelas Manajemen yang Ditik dengan Kuat)

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 Key untuk menjelaskan properti di kelas yang dihasilkan. Misalnya, properti yang dimodifikasi dengan Read kualifikasi hanya didefinisikan dengan aksesor properti get di kelas yang dihasilkan. Karena properti yang ditandai dengan Read kualifikasi dimaksudkan untuk baca-saja, set aksesor tidak ditentukan.

  • Properti numerik dapat dimodifikasi oleh dan ValuesValueMaps kualifikasi untuk menunjukkan bahwa properti hanya dapat diatur ke nilai yang diizinkan yang ditentukan. Enumerasi dihasilkan dengan ini Values dan ValueMaps dan 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);
   }
}

Lihat juga