如何在 Configuration Manager 中建立集合變數
您可以將 SMS_CollectionVariable Server WMI 類別的實例新增至SMS_CollectionSettings Server WMI 類別CollectionVariables
的 屬性,以建立Configuration Manager集合的集合變數。
若要建立集合變數
設定與 SMS 提供者的連線。 如需詳細資訊,請 參閱 SMS 提供者基本概念。
針對要加入的每個變數,將内嵌物件 的實例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;
}
}
範例方法具有下列參數:
參數 | Type | 描述 |
---|---|---|
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.Collections.Generic
Microsoft。ConfigurationManagement.ManagementProvider
Microsoft。ConfigurationManagement.ManagementProvider.WqlQueryEngine
組件
microsoft.configurationmanagement.managementprovider
adminui.wqlqueryengine
健全的程式設計
如需錯誤處理的詳細資訊,請參閱關於Configuration Manager錯誤。
.NET Framework 安全性
如需保護Configuration Manager應用程式的詳細資訊,請參閱Configuration Manager角色型系統管理。
另請參閱
物件概觀如何使用 Managed 程式碼在Configuration Manager中連線至 SMS 提供者
如何使用 WMI 在 Configuration Manager 中連線到 SMS 提供者
如何在 Configuration Manager 中建立電腦變數
如何使用 Managed 程式碼建立Configuration Manager物件
如何使用 WMI 建立Configuration Manager物件
關於作業系統部署電腦管理