다음을 통해 공유


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

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

컬렉션 변수를 만들려면

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

  2. SMS_CollectionSettings 인스턴스를 가져옵니다.

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

  4. 클래스 인스턴스에 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 Manager 개체를 만드는 방법
WMI를 사용하여 Configuration Manager 개체를 만드는 방법
OS 배포 컴퓨터 관리 정보