Partilhar via


Como criar uma consulta de gestor de configuração

No Gestor de Configurações, SMS_Query cria-se uma consulta baseada na criação de um exemplo de SMS_Query . O SMS_Query objeto de classe define uma consulta Expression WQL. Se pretender limitar os resultados da consulta a uma recolha específica, especifique o identificador de recolha na LimitToCollectionID propriedade.

Nota

Quando cria uma consulta, é exibida na consola 'Gestor de Configuração' em 'Consultas'.

Para criar uma consulta

  1. Configurar uma ligação com o Fornecedor DE SMS. Para mais informações, consulte os fundamentos do Fornecedor de SMS.

  2. Criar um exemplo de SMS_Query.

  3. Povoar as SMS_Query propriedades.

  4. Cometa o SMS_Query .

  5. Se necessário, recupere o objeto de consulta e obtenha o identificador de consulta.

Exemplo

O método exemplo a seguir cria uma SMS_Query consulta de classe que consulta para todos os sistemas. O método devolve o identificador de consulta, que pode ser usado como entrada para o exemplo em Como Executar uma Consulta de Gestor de Configuração.

Para obter informações sobre a chamada do código de amostra, consulte o Código de Identificação do Gestor de Chamadas.

Function CreateQuery(connection)  
   On Error Resume Next  

   Dim query  
   Dim path  

   ' Create a query object.  
    Set query = connection.Get("SMS_Query").SpawnInstance_()  

    If Err.Number<>0 Then  
        Wscript.Echo "Couldn't create query object"  
        CreateQuery = Null  
        Exit Function  
    End If  

    ' Populate the object.  
    query.Comments = "A query for all systems"  
    query.Expression = "select Name, " + _  
    "SMSAssignedSites, " +              _  
    "IPAddresses, " +                   _  
    "IPSubnets, " +                     _  
    "OperatingSystemNameandVersion, " + _  
    "ResourceDomainORWorkgroup, " +     _  
    "LastLogonUserDomain, " +           _  
    "LastLogonUserName, " +             _  
    "SMSUniqueIdentifier, " +           _  
    "ResourceId, " +                    _  
    "ResourceType, " +                  _  
    "NetbiosName " +                    _  
    "from sms_r_system"  
    query.LimitToCollectionID = nothing  
    query.Name = "Query All Systems"  
    query.TargetClassName = "SMS_R_System"  

    ' Commit the object  
    path = query.Put_  

    If Err.Number<>0 Then  
        Wscript.Echo "Couldn't commit the query"  
        CreateQuery = Null  
        Exit Function  
    End If  

    WScript.Echo "Query created"  

    ' Get the object back to get the query identifier.  
    Set query = connection.Get(path)  
    CreateQuery = query.QueryID  

End Function  

public string CreateQuery(WqlConnectionManager connection)  
{  
    try  
    {  
        // Create an SMS_Query object.  
        IResultObject query = connection.CreateInstance("SMS_Query");  

        // Populate the object.  
        query["Comments"].StringValue = "A query for all systems";  
        query["Expression"].StringValue =   
            "select Name, " +  
            "SMSAssignedSites, " +  
            "IPAddresses, " +  
            "IPSubnets, " +  
            "OperatingSystemNameandVersion, " +  
            "ResourceDomainORWorkgroup, " +  
            "LastLogonUserDomain, " +  
            "LastLogonUserName, " +  
            "SMSUniqueIdentifier, " +  
            "ResourceId, " +  
            "ResourceType, " +  
            "NetbiosName " +  
            "from sms_r_system";  
        query["LimitToCollectionID"].StringValue = null;  
        query["Name"].StringValue = "Query All Systems";  
        query["TargetClassName"].StringValue = "SMS_R_System";  

        // Commit the query.  
        query.Put();  

        // Get the query - allows access to the queryID.  
        query.Get();  

        // Return the query identifier.  
        return query["QueryID"].StringValue;  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to run the query: " + e.Message);  
        throw;  
    }  
}  

O método exemplo tem os seguintes parâmetros:

Parâmetro Tipo Description
connection - Gerido: WqlConnectionManager
- VBScript: SWbemServices
- Uma ligação válida ao Fornecedor de SMS.

A Compilar o Código

O exemplo C# tem os seguintes requisitos de compilação:

Espaços de nomes

Sistema

System.Collections.Generic

System.Text

Microsoft.ConfigurationManagement.ManagementProvider

Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine

Assemblagem

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

Programação Robusta

Para obter mais informações sobre o tratamento de erros, consulte Sobre erros do Gestor de Configuração.

Segurança do .NET Framework

Para obter mais informações sobre a segurança das aplicações do Gestor de Configuração, consulte a administração baseada em funções do Gestor de Configuração.

Consulte também

Sobre consultas de gestor de configuração
Como executar uma consulta de gestor de configuração