Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W Configuration Manager tworzysz SMS_Queryzapytanie 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_Querywł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:
Przestrzenie nazw
System
System.Collections.Generic
System.Text
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Montaż
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 ManagerJak uruchomić zapytanie Configuration Manager