Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I Configuration Manager kör du en baserad fråga genom att hämta frågeinstansen SMS_Query och sedan köra WQL-frågan i objektegenskapen SMS_QueryExpression.
När du har WQL-frågan kan du köra frågan antingen synkront eller asynkront. Följande exempel är synkront. Information om hur du kör frågan asynkront finns i Så här utför du en asynkron Configuration Manager fråga med hjälp av hanterad kod och hur du utför en asynkron Configuration Manager fråga med hjälp av WMI. I de här exemplen ändrar du strängen select * from collectionExpression till egenskapsvärdet.
Så här kör du en fråga
Konfigurera en anslutning till SMS-leverantören. Mer information finns i Grunderna för SMS-providern.
SMS_QueryHämta objektet för frågan du vill köra.Kör frågan som identifieras av objektegenskapen
SMS_QueryExpression.
Exempel
Följande exempelmetod kör synkront frågan som identifieras av parametern queryId .
Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.
Sub RunQuery(connection, queryId)
Dim query
Dim queryResults
Dim queryResult
' Get query.
Set query=connection.Get("SMS_Query.QueryID='" & queryId & "'" )
If err.number<>0 Then
WScript.echo "Couldn't get Queries"
Exit Sub
End If
' Run query.
WScript.echo query.Name
WScript.echo "----------------------------------"
Set queryResults=connection.ExecQuery(query.Expression)
For Each queryResult In queryResults
wscript.echo " " & queryResult.Name
Next
If queryResults.Count=0 Then
WScript.echo " no query results"
End If
End Sub
public void RunQuery(WqlConnectionManager connection, string queryId)
{
try
{
// Get the query.
IResultObject query = connection.GetInstance(@"SMS_Query.QueryID='" + queryId + "'");
Console.WriteLine(query["Name"].StringValue);
Console.WriteLine("----------------------------------");
// Get the query results.
IResultObject queryResults = connection.QueryProcessor.ExecuteQuery(query["Expression"].StringValue);
bool resultsFound = false;
foreach (IResultObject queryResult in queryResults)
{
resultsFound = true;
Console.WriteLine(queryResult["Name"].StringValue);
}
if (resultsFound == false)
{
Console.WriteLine(" No query results");
}
}
catch (SmsException ex)
{
Console.WriteLine("Failed to run query: " + ex.Message);
throw;
}
}
Exempelmetoden har följande parametrar:
| Parameter | Typ | Beskrivning |
|---|---|---|
connection |
- Hanterad: WqlConnectionManager- VBScript: SWbemServices |
En giltig anslutning till SMS-leverantören. |
queryID |
- Hanterad: String- VBScript: String |
En frågeidentifierare. Mer information finns i klassegenskapen SMS_QueryQueryID . |
Kompilerar koden
C#-exemplet har följande kompileringskrav:
Namnområden
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Montering
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
Robust programmering
Mer information om felhantering finns i Om Configuration Manager fel.
.NET Framework Security
Mer information om hur du skyddar Configuration Manager program finns i Configuration Manager rollbaserad administration.
Se även
Om Configuration Manager frågorSå här skapar du en Configuration Manager frågaSå här utför du en asynkron Configuration Manager fråga med hjälp av hanterad kodSå här utför du en asynkron Configuration Manager fråga med hjälp av WMI