Jak utworzyć zapytanie Configuration Manager
W Configuration Manager utworzysz SMS_Query
zapytanie oparte na parametrze , tworząc wystąpienie elementu SMS_Query
. Obiekt SMS_Query
klasy Expression
definiuje zapytanie WQL. Jeśli chcesz ograniczyć wyniki zapytania do określonej kolekcji, określ identyfikator kolekcji we LimitToCollectionID
właściwości .
Uwaga
Podczas tworzenia zapytania jest ono wyświetlane w konsoli Configuration Manager w obszarze Zapytania.
Aby utworzyć zapytanie
Skonfiguruj połączenie z dostawcą programu SMS. Aby uzyskać więcej informacji, zobacz Podstawy dostawcy programu SMS.
Utwórz wystąpienie SMS_Query.
Wypełnij
SMS_Query
właściwości.Zatwierdź element
SMS_Query
.W razie potrzeby pobierz obiekt zapytania i pobierz identyfikator zapytania.
Przykład
Poniższa przykładowa metoda tworzy SMS_Query
zapytanie klasy, które wykonuje zapytania dla wszystkich systemów. Metoda zwraca identyfikator zapytania, który może służyć jako dane wejściowe do przykładu w temacie How to Run a Configuration Manager Query (Jak uruchomić zapytanie Configuration Manager).
Aby uzyskać informacje na temat wywoływania przykładowego kodu, zobacz Wywoływanie fragmentów kodu Configuration Manager.
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;
}
}
Przykładowa metoda ma następujące parametry:
Parametr | Wpisać | Opis |
---|---|---|
connection |
-Zarządzane: WqlConnectionManager - VBScript: SWbemServices |
- Prawidłowe połączenie z dostawcą programu SMS. |
Kompilowanie kodu
Przykład języka C# ma następujące wymagania dotyczące kompilacji:
Obszary nazw
System
System.collections.generic
System.text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Zestawu
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Niezawodne programowanie
Aby uzyskać więcej informacji na temat obsługi błędów, zobacz Informacje o błędach Configuration Manager.
zabezpieczenia .NET Framework
Aby uzyskać więcej informacji na temat zabezpieczania aplikacji Configuration Manager, zobacz Configuration Manager administracja oparta na rolach.
Zobacz też
Informacje o zapytaniach Configuration Manager
Jak uruchomić zapytanie Configuration Manager