Cómo crear una variable de colección en Configuration Manager
Cree una variable de colección para una colección de Configuration Manager agregando instancias de SMS_CollectionVariable clase WMI de servidor a la CollectionVariables
propiedad de SMS_CollectionSettings clase WMI de servidor.
Para crear una variable de colección
Configure una conexión con el proveedor de SMS. Para obtener más información, consulte Aspectos básicos del proveedor de SMS.
Obtenga una instancia de SMS_CollectionSettings.
Para cada variable que se va a agregar, agregue instancias del objeto incrustado SMS_CollectionVariable a la propiedad de matriz CollectionVariables .
Confirme los cambios en la instancia de clase
SMS_CollectionSettings
.
Ejemplo
El siguiente método de ejemplo crea una variable de colección y la agrega a la colección identificada por el identificador proporcionado. Si el SMS_CollectionSettings
objeto de la colección no existe, se crea.
Para obtener información sobre cómo llamar al código de ejemplo, vea Llamar a fragmentos de código de Configuration Manager.
Sub CreateCollectionVariable( connection, name, value, mask, collectionId, precedence)
Dim collectionSettings
Dim collectionVariables
Dim collectionVariable
Dim Settings
' See if the settings collection already exists. if it does not, create it.
Set settings = connection.ExecQuery _
("Select * From SMS_CollectionSettings Where CollectionID = '" & collectionID & "'")
If settings.Count = 0 Then
Wscript.Echo "Creating collection settings object"
Set collectionSettings = connection.Get("SMS_CollectionSettings").SpawnInstance_
collectionSettings.CollectionID = collectionId
collectionSettings.Put_
End If
' Get the collection settings object.
Set collectionSettings = connection.Get("SMS_CollectionSettings.CollectionID='" & collectionId &"'" )
' Get the collection variables.
collectionVariables=collectionSettings.CollectionVariables
' Create and populate a new collection variable.
Set collectionVariable = connection.Get("SMS_CollectionVariable").SpawnInstance_
collectionVariable.Name = name
collectionVariable.Value = value
collectionVariable.IsMasked = mask
' Add the new collection variable.
ReDim Preserve collectionVariables (UBound (collectionVariables)+1)
Set collectionVariables(UBound(collectionVariables)) = collectionVariable
collectionSettings.CollectionVariables=collectionVariables
collectionSettings.Put_
End Sub
public void CreateCollectionVariable(
WqlConnectionManager connection,
string name,
string value,
bool mask,
string collectionId,
int precedence)
{
try
{
IResultObject collectionSettings = null;
// Get the collection settings. Create it if necessary.
IResultObject collectionSettingsQuery = connection.QueryProcessor.ExecuteQuery(
"Select * from SMS_CollectionSettings where CollectionID='" + collectionId + "'");
foreach (IResultObject setting in collectionSettingsQuery)
{
collectionSettings = setting;
}
if ( collectionSettings == null)
{
collectionSettings = connection.CreateInstance("SMS_CollectionSettings");
collectionSettings["CollectionID"].StringValue = collectionId;
collectionSettings.Put();
collectionSettings.Get();
}
// Create the collection variable.
List<IResultObject> collectionVariables = collectionSettings.GetArrayItems("CollectionVariables");
IResultObject collectionVariable = connection.CreateEmbeddedObjectInstance("SMS_CollectionVariable");
collectionVariable["Name"].StringValue = name;
collectionVariable["Value"].StringValue = value;
collectionVariable["IsMasked"].BooleanValue = mask;
// Add the collection variable to the collection settings.
collectionVariables.Add(collectionVariable);
collectionSettings.SetArrayItems("CollectionVariables", collectionVariables);
// Set the collection variable precedence.
collectionSettings["CollectionVariablePrecedence"].IntegerValue = precedence;
collectionSettings.Put();
}
catch (SmsException e)
{
Console.WriteLine("Failed to create collection variable: " + e.Message);
throw;
}
}
El método de ejemplo tiene los parámetros siguientes:
Parámetro | Tipo | Descripción |
---|---|---|
Connection |
-Administrado: WqlConnectionManager - VBScript: SWbemServices |
Una conexión válida al proveedor de SMS. |
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. |
CollectionID |
-Administrado: String -Vbscript: String |
Colección a la que se agrega la variable. |
Precedence |
-Administrado: Integer -Vbscript: Integer |
Precedencia de la variable sobre otras variables de la matriz. |
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 sobre el control de errores, consulte Acerca de los errores de Configuration Manager.
Seguridad de .NET Framework
Para obtener más información sobre la protección de aplicaciones Configuration Manager, consulte Configuration Manager administración basada en roles.
Consulta también
Información general sobrelos objetos Cómo conectarse a un proveedor de SMS en Configuration Manager mediante código administrado
Conexión a un proveedor de SMS en Configuration Manager mediante WMI
Cómo crear una variable de equipo en Configuration Manager
Creación de un objeto Configuration Manager mediante código administrado
Creación de un objeto Configuration Manager mediante WMI
Acerca de la administración de equipos de implementación del sistema operativo