Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In Configuration Manager maakt u een SMS_Queryop -gebaseerde query door een exemplaar van SMS_Query. Het SMS_Query klasseobject Expression definieert een WQL-query. Als u de queryresultaten wilt beperken tot een bepaalde verzameling, geeft u de verzamelings-id op in de LimitToCollectionID eigenschap.
Opmerking
Wanneer u een query maakt, wordt deze weergegeven in de Configuration Manager-console onder Query's.
Een query maken
Stel een verbinding in met de sms-provider. Zie Basisprincipes van sms-provider voor meer informatie.
Een exemplaar van SMS_Query maken.
Vul de
SMS_Queryeigenschappen in.Commit het
SMS_Query.Haal indien nodig het queryobject op en haal daar de query-id op.
Voorbeeld
Met de volgende voorbeeldmethode maakt u een SMS_Query klassequery die query's uitvoert voor alle systemen. De methode retourneert de query-id, die kan worden gebruikt als invoer voor het voorbeeld in How to run a Configuration Manager Query.
Zie Codefragmenten van Configuration Manager aanroepen voor meer informatie over het aanroepen van de voorbeeldcode.
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;
}
}
De voorbeeldmethode heeft de volgende parameters:
| Parameter | Type | Beschrijving |
|---|---|---|
connection |
- Beheerd: WqlConnectionManager- VBScript: SWbemServices |
- Een geldige verbinding met de sms-provider. |
De code compileren
Het C#-voorbeeld heeft de volgende compilatievereisten:
Naamruimten
Systeem
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
bijeenkomst
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robuust programmeren
Zie Info over fouten in Configuration Manager voor meer informatie over foutafhandeling.
.NET Framework-beveiliging
Zie Rolgebaseerd beheer van Configuration Manager voor meer informatie over het beveiligen van Configuration Manager-toepassingen.
Zie ook
Informatie over Configuration Manager query'sEen Configuration Manager query uitvoeren