Создание переменной коллекции в Configuration Manager
Переменная коллекции для коллекции Configuration Manager создается путем добавления экземпляров класса CollectionVariables
WMI сервера SMS_CollectionVariable в свойство класса WMI сервера SMS_CollectionSettings.
Создание переменной коллекции
Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Основы поставщика SMS.
Получение экземпляра SMS_CollectionSettings.
Для добавления каждой переменной добавьте экземпляры внедренного объекта SMS_CollectionVariable в свойство массива CollectionVariables .
Зафиксируйте изменения в экземпляре
SMS_CollectionSettings
класса.
Пример
В следующем примере метод создает переменную коллекции и добавляет ее в коллекцию, определяемую предоставленным идентификатором.
SMS_CollectionSettings
Если объект для коллекции не существует, он создается.
Сведения о вызове примера кода см. в разделе Вызов фрагментов кода 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;
}
}
Метод примера имеет следующие параметры:
Параметр | Тип | Описание |
---|---|---|
Connection |
-Управляемых: WqlConnectionManager — VBScript: SWbemServices |
Допустимое подключение к поставщику SMS. |
Name |
-Управляемых: String -Vbscript: String |
Имя создаваемой переменной. |
Value |
-Управляемых: String -Vbscript: String |
Значение переменной |
Mask |
-Управляемых: Boolean -Vbscript: Boolean |
Указывает, отображается ли значение в консоли Configuration Manager.true — значение переменной не отображается.false — отображается значение переменной. |
CollectionID |
-Управляемых: String -Vbscript: String |
Коллекция, в которую добавляется переменная. |
Precedence |
-Управляемых: Integer -Vbscript: Integer |
Приоритет переменной над другими переменными в массиве. |
Компиляция программы
Пример C# имеет следующие требования к компиляции:
Пространства имен
System;
System.Collections.Generic;
Майкрософт. ConfigurationManagement.ManagementProvider
Майкрософт. ConfigurationManagement.ManagementProvider.WqlQueryEngine
Assembly
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
Надежное программирование
Дополнительные сведения об обработке ошибок см. в разделе Сведения об ошибках Configuration Manager.
Безопасность .NET Framework
Дополнительные сведения о защите приложений Configuration Manager см. в статье Configuration Manager администрирование на основе ролей.
См. также
Общие сведения об объектах. Подключение к поставщику SMS в Configuration Manager с помощью управляемого кода
Подключение к поставщику SMS в Configuration Manager с помощью WMI
Создание переменной компьютера в Configuration Manager
Создание объекта Configuration Manager с помощью управляемого кода
Создание объекта Configuration Manager с помощью WMI
Сведения об управлении компьютером развертывания ОС