Partager via


Comment créer une variable d’ordinateur dans Configuration Manager

Vous créez une variable d’ordinateur pour un ordinateur qui exécute Configuration Manager en ajoutant des instances de SMS_MachineVariable à la propriété de tableau de classesMachineVariables SMS_MachineSettings.

Pour créer une variable d’ordinateur

  1. Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.

  2. Obtient une instance de SMS_MachineSettings.

  3. Pour chaque variable à ajouter, ajoutez des instances de l’objet incorporé a SMS_MachineVariable à la MachineVariables propriété array.

  4. Validez les modifications apportées à l’instance de SMS_MachineSettings classe.

Exemple

L’exemple de méthode suivant crée une variable de collection et l’ajoute à la collection identifiée par l’identificateur fourni.

Dans l’exemple, la LocaleID propriété est codée en dur en anglais (États-Unis). Si vous avez besoin des paramètres régionaux pour les non-États-Unis vous pouvez l’obtenir à partir de la propriété classe LocaleIDWMI du serveur SMS_Identification.

Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code Configuration Manager.

Sub CreateComputerVariable(connection, siteCode, name, value, mask, computerId)  

    Dim computerSettings  
    Dim computerVariables  
    Dim computerVariable  
    Dim Settings  

    ' See if the computer settings object already exists. if it does not, create it.  
    Set settings = connection.ExecQuery _  
      ("Select * From SMS_MachineSettings Where ResourceID = '" & computerID & "'")  

    If settings.Count = 0 Then  
        Wscript.Echo "Creating computer settings object"  
        Set computerSettings = connection.Get("SMS_MachineSettings").SpawnInstance_  
        computerSettings.ResourceID = computerId  
        computerSettings.SourceSite = siteCode  
        computerSettings.LocaleID = 1033  
        computerSettings.Put_  
    End If    

    ' Get the computer settings object.  
    Set computerSettings = connection.Get("SMS_MachineSettings.ResourceID='" & computerId &"'" )  

    ' Get the computer variables.  
    computerVariables=computerSettings.MachineVariables  

    ' Create and populate a new computer variable.  
    Set computerVariable = connection.Get("SMS_MachineVariable").SpawnInstance_  
    computerVariable.Name = name  
    computerVariable.Value = value  
    computerVariable.IsMasked = mask  

    ' Add the new computer variable.  
    ReDim Preserve computerVariables (UBound (computerVariables)+1)  
    Set computerVariables(UBound(computerVariables)) = computerVariable  

    computerSettings.MachineVariables=computerVariables  

    computerSettings.Put_  

 End Sub     
public void CreateComputerVariable(  
    WqlConnectionManager connection,  
    string siteCode,   
    string name,   
    string value,   
    bool mask,   
    int computerId)  
{  
    try  
    {  
        // Get the computer settings.  
        IResultObject computerSettings=null;  

        IResultObject computerSettingsQuery = connection.QueryProcessor.ExecuteQuery(  
            "Select * from SMS_MachineSettings where ResourceId = '" + computerId + "'");  

        foreach (IResultObject settings in computerSettingsQuery)  
        {  
            computerSettings = settings;  
        }  

        if (computerSettings == null) // It does not exist, so create it.  
        {  
            computerSettings = connection.CreateInstance(@"SMS_MachineSettings");  
            computerSettings["ResourceID"].IntegerValue = computerId;  
            computerSettings["SourceSite"].StringValue = siteCode;  
            computerSettings["LocaleID"].IntegerValue = 1033;  
            computerSettings.Put();  
            computerSettings.Get();  
        }  

        // Create the computer variable.  
        List<IResultObject> computerVariables = computerSettings.GetArrayItems("MachineVariables");  
        IResultObject computerVariable = connection.CreateEmbeddedObjectInstance("SMS_MachineVariable");  
        computerVariable["Name"].StringValue = name;  
        computerVariable["Value"].StringValue = value;  
        computerVariable["IsMasked"].BooleanValue = mask;  

        // Add the computer variable to the computer settings.  
        computerVariables.Add(computerVariable);  
        computerSettings.SetArrayItems("MachineVariables", computerVariables);  

        computerSettings.Put();  
    }  
    catch (SmsException e)  
    {  
        Console.WriteLine("Failed to create computer variable: " + 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.
siteCode -Géré: String
-Vbscript: String
Code du site source.
name -Géré: String
-Vbscript: String
Nom de la variable à créer.
value -Géré: String
-Vbscript: String
Valeur de la variable.
mask -Géré: Boolean
-Vbscript: Boolean
Spécifie si la valeur est affichée dans la console Configuration Manager.

true : la valeur de la variable n’est pas affichée.

false : la valeur de la variable s’affiche.
computerID -Géré: Integer
-Vbscript: Integer
Identificateur de l’ordinateur. Il s’agit généralement de la propriété de classe ResourceID SMS_R_System.

Compilation du code

L’exemple C# présente les exigences de compilation suivantes :

Espaces de noms

Système

System.Collections.Generic

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 de la gestion des ordinateurs de déploiement de système d’exploitation