Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 classe MachineVariables SMS_MachineSettings.
Pour créer une variable d’ordinateur
Établissez une connexion au fournisseur SMS. Pour plus d’informations, consultez Principes de base du fournisseur SMS.
Obtenez une instance de
SMS_MachineSettings.Pour chaque variable à ajouter, ajoutez des instances de l’objet incorporé a
SMS_MachineVariableà laMachineVariablespropriété du tableau.Validez les modifications apportées à l’instance de
SMS_MachineSettingsclasse.
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 propriété est codée en dur selon l’anglais LocaleID (États-Unis). Si vous avez besoin des paramètres régionaux pour les destinations hors États-Unis. installations, vous pouvez l’obtenir à partir de la propriété de classeLocaleID WMI SMS_Identification Server.
Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code de 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 contient 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 de site 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 |
Indique si la valeur doit être affichée dans la console du 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 |
Identifiant 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# a 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, voir À propos des erreurs du Configuration Manager.
Sécurité de .NET Framework
Pour plus d’informations sur la sécurisation des applications Configuration Manager, voir Administration basée sur les rôles de Configuration Manager.
Voir aussi
À propos du déploiement du système d’exploitation et de la gestion de l’ordinateur