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. Process
a 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);
}
}