다음을 통해 공유


Configuration Manager 컬렉션 변수를 만드는 방법

SMS_CollectionSettings Server WMI 클래스의 속성에 SMS_CollectionVariable Server WMI 클래스의 인스턴스를 CollectionVariables 추가하여 Configuration Manager 컬렉션에 대한 컬렉션 변수를 만듭니다.

컬렉션 변수를 만들려면

  1. SMS 공급자에 대한 연결을 설정합니다. 자세한 내용은 SMS 공급자 기본 사항을 참조하세요.

  2. SMS_CollectionSettings instance 가져옵니다.

  3. 추가할 각 변수에 대해 포함 개체 SMS_CollectionVariable 인스턴스를 CollectionVariables 배열 속성에 추가합니다.

  4. 클래스 instance 변경 내용을 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.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에서 컴퓨터 변수를 만드는 방법 관리 코드를 사용하여 개체 Configuration ManagerOS 배포 컴퓨터 관리에 대해WMI를 사용하여 Configuration Manager 개체를 만드는 방법