Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
Keyegy létrehozott osztály egy tulajdonságának leírását használja. Egy minősítővelReadmódosított tulajdonság például csak egy tulajdonságkiegészítővelgetvan definiálva a létrehozott osztályban. Mivel aReadminősítővel megjelölt tulajdonság írásvédettset, a tartozék nincs definiálva.A numerikus tulajdonságot a
ValuesValueMapsminősítők módosíthatják, hogy jelezzék, hogy a tulajdonság csak a megadott megengedett értékekre állítható be. EzekkelValueslétrejön egy enumerálás, ésValueMapsa 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);
}
}