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
Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Notions de base du fournisseur SMS.
Obtient une instance de
SMS_MachineSettings
.Pour chaque variable à ajouter, ajoutez des instances de l’objet incorporé a
SMS_MachineVariable
à laMachineVariables
propriété array.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 LocaleID
WMI 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