Compartilhar via


Gerenciamento Strongly Typed gerador de classe (mgmtclassgen.exe)

A ferramenta de gerenciamento gerador de classe digitados fortemente permite gerar rapidamente um early-limite gerenciado classe para uma classe de WMI (Instrumentação de gerenciamento do Windows) especificada. A classe gerada simplifica o código que deve escrever para acessar uma instância da classe WMI.

mgmtclassgen WMIClass [options] 

Argumento

Descrição

WMIClass

A classe Instrumentação de Gerenciamento do Windows para o qual você deseja gerar um early-limite gerenciado classe.

Opção

Descrição

/l linguagem de

Especifica o linguagem no qual deseja gerar a classe de early limite gerenciada. Você pode especificar CS (Translation from VPE for Csharp; padrão), VB (Visual Basic), MC (gerenciado Extensions para C++), VJ (O visual J#) ou JS (JScript) sistema autônomo o argumento de linguagem.

/m computador de

Especifica o computador para se conectar, onde reside a classe WMI. O padrão é o computador local.

/n caminho

Especifica o caminho para o WMI namespace que contém a classe WMI. Se você não especificar esta opção, a ferramenta gera código para WMIClass no padrão raiz\cimv2 namespace.

/o classnamespace

Especifica o namespace .NET no qual deseja gerar a classe de código gerenciado. Se você não especificar esta opção, a ferramenta gera o espaço para nome usando o espaço para nome WMI e o prefixo de esquema. O prefixo de esquema é a parte do nome de classe antes do caractere sublinhado. Por exemplo, para o Win32_OperatingSystem classe de a raiz\cimv2 namespace, a ferramenta poderia gerar a classe em raiz.CIMV2.Win32.

/p caminho do arquivo de

Especifica o caminho para o arquivo no qual salvar o código gerado. Se você não especificar esta opção, a ferramenta cria o arquivo no diretório corrente. Ele nomeia a classe e o arquivo em que ele gera a classe usando o WMIClass argumento. O nome da classe e o arquivo são sistema autônomo mesmos nome do WMIClass. If WMIClass contém um caractere sublinhado, a ferramenta usa a parte do nome de classe segue o caractere de sublinhado. Por exemplo, se o WMIClass nome está no formato Win32_LogicalDisk, a classe gerada e o arquivo é nomeado "logicaldisk". Se um arquivo já existir, a ferramenta sobrescreverá o arquivo existente.

/pw senha de

Especifica a senha para utilizar quando registrar em log logon em um computador especificado pelo /m opção.

/u nome de usuário

Especifica o nome de usuário a ser usado ao fazer logon em um computador especificado pelo /m opção.

/?

Exibe sintaxe de comando e opções para a ferramenta.

Comentários

Mgmtclassgen.exe usa o sistema.Management.ManagementClass.GetStronglyTypedClassCode método. Portanto, você pode usar qualquer provedor de código personalizado para gerar o código gerenciado idiomas Outros translation from VPE for Csharp, Visual Basic e JScript.

Observe que classes geradas são vinculados a esquema para o qual eles são gerados. Se o esquema subjacente for alterado, você deve regenerar a classe se desejar que ele para refletir as alterações no esquema.

A tabela a seguir mostra como tipos CIM (modelo de informação comum) do WMI são mapeados para tipos de dados em uma classe gerada:

Tipo CIM

Tipo de dados na classe gerada

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

Single

CIM_REAL64

Double

CIM_BOOLEAN

Boolean

CIM_String

String

CIM_DATETIME

DateTime or TimeSpan

CIM_REFERENCE

ManagementPath

CIM_CHAR16

Char

CIM_OBJECT

ManagementBaseObject

CIM_IUNKNOWN

Objeto

CIM_ARRAY

Matriz de objetos mencionados acima

Observe os seguintes comportamentos ao gerar uma classe WMI:

  • É possível que uma propriedade pública padrão ou método para ter o mesmo nome de uma propriedade existente ou método. Se isso ocorrer, a ferramenta altera o nome da propriedade ou método na classe gerada para evitar conflitos de nomes.

  • É possível que o nome de uma propriedade ou método em uma classe gerada para ser uma palavra-chave na linguagem de programação de destino. Se isso ocorrer, a ferramenta altera o nome da propriedade ou método na classe gerada para evitar conflitos de nomes.

  • No WMI, qualificadores são modificadores que contêm informações para descrever uma classe, ocorrência, propriedade ou método. O WMI usa sistema autônomo qualificadores padrão sistema autônomo, por exemplo, Leitura, gravar, and Chave para descrever uma propriedade em uma classe gerada. Por exemplo, uma propriedade modificada com um Leitura qualificador é definido somente com uma propriedade obter acessador na classe gerada. Porque uma propriedade marcada com o Leitura qualificador deve ser somente leitura, um conjunto acessador não está definido.

  • Uma propriedade numérica pode ser modificada pelo Valores and ValueMaps qualificadores para indicar que a propriedade pode ser definida somente ao especificados os valores permitidos. An Enumerações no CTS (Common Type System) é gerado com esses Valores and ValueMaps e a propriedade é mapeado para a enumeração.

  • O WMI usa o termo singleton para descrever uma classe que pode ter apenas uma instância. Portanto, o construtor padrão para uma classe singleton inicializará a classe para a única instância da classe.

  • Uma classe WMI pode ter propriedades que são objetos. Quando você gera uma classe fortemente tipado para este tipo de classe WMI, você deve considerar Gerando classes com rigidez de tipos para os tipos de propriedades do objeto incorporado. Isso permitirá que você acesse objetos incorporados de maneira fortemente tipado. Observe que o código gerado pode não ser capaz de detectar o tipo de objeto incorporado. Nesse caso, será criado um comentário no código gerado para notificá-lo desse problema. Em seguida, você pode modificar o código gerado para digitar a propriedade para a classe gerada.

  • No WMI, o valor de dados do tipo de dados CIM_DATETIME pode representar uma determinada data e time ou um intervalo de time. Se o valor de dados representa uma data e time, o tipo de dados na classe gerado é DateTime. Se o valor de dados representa um intervalo de time, o tipo de dados na classe gerado é TimeSpan.

Como alternativa, você pode gerar uma classe fortemente tipado usando a extensão de gerenciamento do Gerenciador de Servidores no Visual Studio. NET.

Para obter mais informações sobre o Instrumentação de Gerenciamento do Windows, consulte o Windows Management instrumentação tópico na documentação do plataforma SDK.

Exemplos

O comando a seguir gera um gerenciado classe no código translation from VPE for Csharp o Win32_LogicalDisk classe WMI no raiz\cimv2 namespace. A ferramenta grava no arquivo de fonte em c:\disco.cs no classe gerenciadaraiz.CIMV2.Win32 namespace.

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

O exemplo de código a seguir mostra como usar uma classe gerada através de programação. Primeiro, uma instância da classe é enumerada e o caminho é impressa. Em seguida, é criar uma instância da classe gerada para serem inicializados com uma instância do WMI. Process a classe é gerada para Win32_Process and LogicalDisk a classe é gerada para Win32_LogicalDisk in the raiz\cimv2 namespace.

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

Consulte também

Referência

Ferramentas.NET Framework

System.Management

sistema.Management.ManagementClass.GetStronglyTypedClassCode

System.CodeDom.Compiler.CodeDomProvider

Prompt de comando SDK 

Outros recursos

Windows Management Instrumentation (WMI) in .NET Framework