Megosztás a következőn keresztül:


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
/l nyelv Meghatározza a korai kötésű felügyelt osztály létrehozásának nyelvét. Nyelvi argumentumként megadhatja a CS (C#; alapértelmezett), a VB (Visual Basic), az MC (C++) vagy a JS (JScript) értéket.
/m gé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.
/n elé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.
/o osztá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.
/p filepath 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.
/pw jelszó Megadja a /m beállítás által megadott számítógépre való bejelentkezéshez használni kívánt jelszót.
/u felhaszná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 kulcsot használ egy létrehozott osztály egy tulajdonságának leírásához. Az olvasási minősítővel módosított tulajdonság például csak a létrehozott osztályhoz tartozó tulajdonság get tartozékával van definiálva. Mivel az Olvasási minősítővel megjelölt tulajdonság írásvédett, a készlet tartozéka nincs definiálva.

  • Az Értékek és értéktérképek minősítői módosíthatnak egy numerikus tulajdonságot, amely azt jelzi, hogy a tulajdonság csak a megadott megengedett értékekre állítható be. A rendszer enumerálást hoz létre ezekkel az Érték- és Értéktérképekkel , a tulajdonság pedig az enumeráláshoz van megfeleltetve.

  • 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 LogicalDisk a Root\cimv2 névtérben Win32_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