Så här skapar du en Configuration Manager fråga
I Configuration Manager skapar du en SMS_Query
-baserad fråga genom att skapa en instans av SMS_Query
. Klassobjektet SMS_Query
Expression
definierar en WQL-fråga. Om du vill begränsa frågeresultatet till en specifik samling anger du samlingsidentifieraren i LimitToCollectionID
egenskapen .
Obs!
När du skapar en fråga visas den i Configuration Manager-konsolen under Frågor.
Så här skapar du en fråga
Konfigurera en anslutning till SMS-providern. Mer information finns i grunderna för SMS-provider.
Skapa en instans av SMS_Query.
Fyll i
SMS_Query
egenskaperna.Checka in
SMS_Query
.Om det behövs hämtar du frågeobjektet och hämtar frågeidentifieraren.
Exempel
Följande exempelmetod skapar en SMS_Query
klassfråga som frågar efter alla system. Metoden returnerar frågeidentifieraren, som kan användas som indata till exemplet i Så här kör du en Configuration Manager fråga.
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
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;
}
}
Exempelmetoden har följande parametrar:
Parameter | Typ | Beskrivning |
---|---|---|
connection |
-Hanterade: WqlConnectionManager – VBScript: SWbemServices |
– En giltig anslutning till SMS-providern. |
Kompilera koden
C#-exemplet har följande kompileringskrav:
Namnområden
System
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Församlingen
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Robust programmering
Mer information om felhantering finns i Om Configuration Manager fel.
.NET Framework Säkerhet
Mer information om hur du skyddar Configuration Manager program finns i Configuration Manager rollbaserad administration.
Se även
Om Configuration Manager frågor
Köra en Configuration Manager fråga