Guide pratique pour créer une requête Configuration Manager
Dans Configuration Manager, vous créez une SMS_Query
requête basée sur la création d’une instance de SMS_Query
. L’objet SMS_Query
de classe Expression
définit une requête WQL. Si vous souhaitez limiter les résultats de la requête à une collection spécifique, spécifiez l’identificateur de collection dans la LimitToCollectionID
propriété .
Remarque
Lorsque vous créez une requête, elle s’affiche dans la console Configuration Manager sous Requêtes.
Pour créer une requête
Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.
Créez une instance de SMS_Query.
Remplissez les
SMS_Query
propriétés.Validez le
SMS_Query
.Si nécessaire, récupérez l’objet de requête et obtenez l’identificateur de requête.
Exemple
L’exemple de méthode suivant crée une requête de SMS_Query
classe qui interroge tous les systèmes. La méthode retourne l’identificateur de requête, qui peut être utilisé comme entrée de l’exemple dans How to Run a Configuration Manager Query.
Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code 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;
}
}
L’exemple de méthode a les paramètres suivants :
Paramètre | Type | Description |
---|---|---|
connection |
-Géré: WqlConnectionManager - VBScript : SWbemServices |
- Connexion valide au fournisseur SMS. |
Compilation du code
L’exemple C# présente les exigences de compilation suivantes :
Espaces de noms
Système
System.Collections.Generic
System.Text
Microsoft. ConfigurationManagement.ManagementProvider
Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Programmation robuste
Pour plus d’informations sur la gestion des erreurs, consultez À propos des erreurs Configuration Manager.
Sécurité de .NET Framework
Pour plus d’informations sur la sécurisation des applications Configuration Manager, consultez Configuration Manager’administration basée sur les rôles.
Voir aussi
À propos des requêtes Configuration Manager
Comment exécuter une requête Configuration Manager