Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Para crear una variable de equipo para un equipo que ejecuta Configuration Manager, agregue instancias de SMS_MachineVariable a la propiedad de matriz de claseMachineVariables SMS_MachineSettings.
Para crear una variable de equipo
Configure una conexión al proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.
Obtenga una instancia de
SMS_MachineSettings.Para cada variable que se va a agregar, agregue instancias del objeto incrustado a
SMS_MachineVariablea la propiedad de matrizMachineVariables.Confirme los cambios en la instancia de clase
SMS_MachineSettings.
Ejemplo
El método de ejemplo siguiente crea una variable de colección y la agrega a la colección identificada por el identificador proporcionado.
En el ejemplo, la LocaleID propiedad está codificada de forma rígida en inglés (EE. UU.). Si necesita la configuración regional para aplicaciones que no sean de EE. UU. puede obtenerla de la propiedad SMS_Identification Server WMI ClassLocaleID .
Para obtener información sobre cómo llamar al código de ejemplo, consulte Llamar a fragmentos de código 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;
}
}
El método de ejemplo tiene los siguientes parámetros:
| Parámetro | Tipo | Descripción |
|---|---|---|
connection |
- Administrado: WqlConnectionManager- VBScript: SWbemServices |
Una conexión válida con el proveedor de SMS. |
siteCode |
- Administrado: String- VBScript: String |
El código del sitio de origen. |
name |
- Administrado: String- VBScript: String |
Nombre de la variable que se va a crear. |
value |
- Administrado: String- VBScript: String |
Valor de la variable. |
mask |
- Administrado: Boolean- VBScript: Boolean |
Especifica si el valor se muestra en la consola de Configuration Manager.true - No se muestra el valor de la variable.false - Se muestra el valor de la variable. |
computerID |
- Administrado: Integer- VBScript: Integer |
El identificador del equipo. Normalmente, esta es la propiedad de clase ResourceID SMS_R_System. |
Compilar el código
El ejemplo de C# tiene los siguientes requisitos de compilación:
Espacios de nombres
System
System.Collections.Generic
Microsoft.ConfigurationManagement.ManagementProvider
Microsoft.ConfigurationManagement.ManagementProvider.WqlQueryEngine
Ensamblado
Microsoft.ConfigurationManagement.ManagementProvider
adminui.wqlqueryengine
Programación sólida
Para obtener más información acerca del control de errores, consulte Acerca de los errores de Configuration Manager.
Seguridad de .NET Framework
Para obtener más información acerca de cómo proteger las aplicaciones de Configuration Manager, consulte Administración basada en roles de Configuration Manager.
Vea también
Acerca de la administración de equipos de implementación del sistema operativo