Mgmtclassgen.exe (Erősen gépelt osztálygenerátor kezelése)

A Szigorúan gépelt osztálygenerátor eszköz lehetővé teszi egy korai kötésű felügyelt osztály gyors generálását egy adott Windows Management Instrumentation (WMI) osztályhoz. A létrehozott osztály leegyszerűsíti az íráshoz szükséges kódot a WMI-osztály egy példányának eléréséhez.

Syntax

mgmtclassgen
WMIClass [options]
Argumentum Leírás
WMIClass A Windows Management Instrumentation osztály, amelyhez korai kötésű felügyelt osztályt szeretne létrehozni.
Lehetőség Leírás
/lnyelv Meghatározza a korai kötésű felügyelt osztály létrehozásának nyelvét. Nyelvi argumentumként megadhat CS (C#; alapértelmezett), VB (Visual Basic), MC (C++) vagy JS (JScript) értéket.
/mgép Megadja a csatlakozni kívánt számítógépet, amelyhez a WMI-osztály található. Alapértelmezés szerint a helyi számítógép.
/nelérési út Megadja a WMI-osztályt tartalmazó WMI-névtér elérési útját. Ha nem adja meg ezt a beállítást, az eszköz létrehozza a WMIClass kódját az alapértelmezett Root\cimv2 névtérben.
/oosztálynévtér Azt a .NET-névteret adja meg, amelyben létre kívánja hozni a felügyelt kódosztályt. Ha nem adja meg ezt a beállítást, az eszköz a WMI-névtér és a sémaelőtag használatával hozza létre a névteret. A sémaelőtag az aláhúzásjel előtti osztálynév része. Például a Root\cimv2 névtér Win32_OperatingSystem osztálya esetében az eszköz létrehozza az osztályt a ROOT fájlban. CIMV2. Win32.
/pfilepath Megadja annak a fájlnak az elérési útját, amelyben menteni szeretné a létrehozott kódot. Ha nem adja meg ezt a beállítást, az eszköz létrehozza a fájlt az aktuális könyvtárban. A WMIClass argumentum használatával elnevzi azt az osztályt és fájlt, amelyben létrehozza az osztályt . Az osztály és a fájl neve megegyezik a WMIClass nevével. Ha a WMIClass aláhúzásjelet tartalmaz, az eszköz az osztálynévnek az aláhúzásjelet követő részét használja. Ha például a WMIClass neve Win32_LogicalDisk formátumban van, a létrehozott osztály és fájl neve "logicaldisk". Ha már létezik fájl, az eszköz felülírja a meglévő fájlt.
/pwjelszó Megadja a /m beállítás által megadott számítógépre való bejelentkezéshez használni kívánt jelszót.
/ufelhasználónév Megadja a /m beállítás által megadott számítógépre való bejelentkezéskor használni kívánt felhasználónevet.
/? Megjeleníti az eszköz parancsszintaxisát és beállításait.

Megjegyzések

Mgmtclassgen.exe a metódust ManagementClass.GetStronglyTypedClassCode használja. Ezért bármely egyéni kódszolgáltatóval létrehozhat kódot a C#, a Visual Basic és a JScript kivételével felügyelt nyelveken.

Vegye figyelembe, hogy a létrehozott osztályok ahhoz a sémához vannak kötve, amelyhez létrehozták őket. Ha az alapul szolgáló séma megváltozik, újra kell létrehoznia az osztályt, ha azt szeretné, hogy tükrözze a séma módosításait.

Az alábbi táblázat bemutatja, hogy a WMI Common Information Model (CIM) hogyan felelteti meg a leképezést egy generált osztály adattípusaihoz:

CIM-típus Adattípus a létrehozott osztályban
CIM_SINT8 SByte
CIM_UINT8 Bájt
CIM_SINT16 Int16
CIM_UINT16 UInt16
CIM_SINT32 Int32
SIM_UINT32 UInt32
CIM_SINT64 Int64
CIM_UINT64 UInt64
CIM_REAL32 Nőtlen
CIM_REAL64 Dupla
CIM_BOOLEAN Logikai
CIM_String Sztring
CIM_DATETIME DateTime vagy TimeSpan
CIM_REFERENCE ManagementPath
CIM_CHAR16 Bejárónő
CIM_OBJECT ManagementBaseObject
CIM_IUNKNOWN Objektum
CIM_ARRAY A fent említett objektumok tömbje

WmI-osztály létrehozásakor vegye figyelembe a következő viselkedéseket:

  • Előfordulhat, hogy egy standard nyilvános tulajdonság vagy metódus neve megegyezik egy meglévő tulajdonság vagy metódus nevével. Ha ez történik, az eszköz módosítja a tulajdonság vagy metódus nevét a létrehozott osztályban az elnevezési ütközések elkerülése érdekében.

  • A létrehozott osztályban lévő tulajdonság vagy metódus neve lehet kulcsszó a cél programozási nyelvben. Ha ez történik, az eszköz módosítja a tulajdonság vagy metódus nevét a létrehozott osztályban az elnevezési ütközések elkerülése érdekében.

  • A WMI-ben a minősítők olyan módosítók, amelyek egy osztályt, példányt, tulajdonságot vagy metódust leíró információkat tartalmaznak. A WMI szabványos minősítőket, például olvasást, írást és Key egy létrehozott osztály egy tulajdonságának leírását használja. Egy minősítővel Read módosított tulajdonság például csak egy tulajdonságkiegészítővel get van definiálva a létrehozott osztályban. Mivel a Read minősítővel megjelölt tulajdonság írásvédett set , a tartozék nincs definiálva.

  • A numerikus tulajdonságot a ValuesValueMaps minősítők módosíthatják, hogy jelezzék, hogy a tulajdonság csak a megadott megengedett értékekre állítható be. Ezekkel Values létrejön egy enumerálás, és ValueMaps a tulajdonság megfeleltetve lesz az enumerálásnak.

  • A WMI a singleton kifejezést használja egy olyan osztály leírására, amely csak egy példánysal rendelkezhet. Ezért az egytonos osztály paraméter nélküli konstruktora inicializálja az osztályt az osztály egyetlen példányára.

  • Egy WMI-osztály rendelkezhet objektumtulajdonságokkal. Ha egy erősen gépelt osztályt hoz létre ehhez a WMI-osztályhoz, érdemes lehet erősen begépelt osztályokat létrehozni a beágyazott objektumtulajdonságok típusaihoz. Ez lehetővé teszi a beágyazott objektumok erős gépelt elérését. Vegye figyelembe, hogy a létrehozott kód nem tudja észlelni a beágyazott objektum típusát. Ebben az esetben a létrehozott kódban létrejön egy megjegyzés, amely értesíti Önt erről a problémáról. Ezután módosíthatja a létrehozott kódot, hogy beírja a tulajdonságot a másik létrehozott osztályba.

  • A WMI-ben a CIM_DATETIME adattípus adatértéke egy adott dátumot és időt vagy időintervallumot jelölhet. Ha az adatérték dátumot és időt jelöl, a létrehozott osztály adattípusa a DateTime. Ha az adatérték egy időintervallumot jelöl, a létrehozott osztály adattípusa a TimeSpan.

A Visual Studio .NET Kiszolgálókezelő felügyeleti bővítményével másik lehetőségként létrehozhat egy erősen gépelt osztályt.

A WMI-ről további információt a Platform SDK dokumentációjában található Windows Management Instrumentation témakör tartalmaz.

Példák

Az alábbi parancs létrehoz egy felügyelt osztályt c# kódban a Win32_LogicalDisk WMI-osztályhoz a Root\cimv2 névtérben. Az eszköz a felügyelt osztályt a forrásfájlba írja a c:\disk.cs a ROOT fájlban. CIMV2. Win32 névtér.

mgmtclassgen Win32_LogicalDisk /n root\cimv2 /l CS /p c:\disk.cs

Az alábbi példakód bemutatja, hogyan használható programozott módon egy létrehozott osztály. Először az osztály egy példánya lesz számba írva, és a rendszer kinyomtatja az elérési utat. Ezután létrejön az inicializálandó létrehozott osztály egy példánya a WMI egy példányával. Processa Win32_Process számára létrehozott osztály, és a Root\cimv2LogicalDiskWin32_LogicalDisk számára létrehozott osztály.

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);
   }
}

Lásd még