您可以為 Configuration Manager SMS_CollectionVariable 集合建立集合變數,方法是將 Server WMI 類別的執行個體新增至 CollectionVariablesSMS_CollectionSettings Server WMI 類別。
建立集合變數
設定與 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;
}
}
範例方法具有下列參數:
| 參數 | 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 角色型系統管理。
另請參閱
物件概觀如何使用託管程式碼連線到 Configuration Manager 中的 SMS 提供者如何使用 WMI 連線到 Configuration Manager 中的 SMS 提供者如何在 Configuration Manager 中建立電腦變數如何建立使用 Managed Code 的 Configuration Manager 物件如何使用 WMI 建立 Configuration Manager 物件關於作業系統部署 電腦管理