사용자 지정 작업 MOF 파일 Configuration Manager 정보

Configuration Manager 운영 체제 배포 작업은 MOF(관리 개체 형식) 파일 %ProgramFiles%\Microsoft Configuration Manager\bin\i386\_tasksequenceprovider.mof에 정의됩니다.

사용자 지정 작업을 만들 때 사용자 지정 작업을 선언하는 MOF 파일을 만들어야 합니다. 그런 다음 Mofcomp.exe 사용하여 SMS 공급자에 변경 내용을 추가합니다. 자세한 내용은 Configuration Manager 사용자 지정 작업에 대한 MOF 파일을 만드는 방법을 참조하세요.

관리자는 사용자 지정 작업 컨트롤을 사용하여 MOF 파일에 정의된 대로 사용자 지정 작업을 구성합니다. 자세한 내용은 사용자 지정 작업 Configuration Manager 정보를 참조하세요.

MOF 파일 콘텐츠

사용자 지정 작업은 SMS_TaskSequence_Action 서버 WMI 클래스에서 파생됩니다. MOF 파일 선언에는 명령줄, 작업 순서 변수, 범주 및 사용자 지정 작업 제어 어셈블리 위치에 대한 클래스 정의 및 다양한 한정자를 포함합니다.

한정자를 사용하는 속성을 제외하고 CommandLineArg 클래스에 선언된 속성은 클라이언트 배포 중에 작업 순서 변수로 사용할 수 있습니다. 자세한 내용은 실행 중인 Configuration Manager 작업 순서에서 작업 순서 변수를 사용하는 방법을 참조하세요.

사용자 지정 작업의 네임스페이스는 \\root\SMS_Site_SITECODE. MOF 파일을 컴파일하면 사용자 지정 작업이 SMS_TaskSequence_Action 서버 WMI 클래스의 자식으로 만들어집니다.

참고

예제 MOF는 _tasksequenceprovider.mof에 선언된 작업 순서 작업 MOF를 참조하세요.

사용자 지정 작업 선언에 대한 MOF 파일의 섹션은 다음 예제와 유사합니다.

[   CommandLine("smsswd.exe /run:%1 Application.exe /user:%2"),  
    VariablePrefix("MyCustomActionPrefix"),  
    ActionCategory("My Custom Action Category,7,1"),  
    ActionName{"ConfigMgrTSAction.dll", "ConfigMgrTSAction.Properties.Resources", "ConfigMgrTSAction"},  
    ActionUI{"ConfigMgrTSAction.dll", "ConfigMgrTSAction","ConfigMgrTSActionControl",   
"ConfigureTSActionOptions"}  
    ]  
class ConfigMgrTSActionControl : SMS_TaskSequence_Action  
{  
    [TaskSequencePackage, CommandLineArg(1)]  
    string          PackageIDForApplicationExe;  

    [Not_Null, CommandLineArg(2)]  
    string          User;  

    [VariableName("CustomLocation")]  
    string          Location;  

};  

전체 MOF는 네임스페이스 및 기타 정보도 지정합니다.

이 샘플에 대한 전체 MOF는 Configuration Manager 사용자 지정 작업에 대한 MOF 파일을 만드는 방법을 참조하세요.

명령줄/Command Line

작업에 대한 명령줄은 클래스 한정자 CommandLine 에서 설명합니다. 호출되는 애플리케이션과 제공할 수 있는 다양한 인수를 정의합니다. 각 명령줄 인수 CommandLineArg 에 대해 해당 클래스 속성의 인수에 대한 클래스 한정자 가 있습니다.

CommandLine 일반적으로 형식을 사용합니다.

CommandLine("smsswd.exe /run:%1 Application.exe %2 %3")

Smsswd.exe 패키지 내에서 프로그램을 실행하는 데 사용됩니다. 다음과 같은 인수가 필요합니다.

인수 설명
/run:%1 애플리케이션이 있는 패키지를 식별합니다. %1은 패키지 식별자(SMS_Package 서버 WMI 클래스PackageID 속성)입니다.
Application.exe 수행되는 사용자 지정 작업 애플리케이션입니다.
%2 - %n Application.exe 대한 하나 이상의 명령줄 인수입니다.

%1, %2 등 명령줄 대체 문자열은 클래스 한정자에서 CommandLineArg 정의됩니다. 예를 들어 다음에서는 %1을(를) 선언합니다.

[TaskSequencePackage, CommandLineArg(1)]  
string          PackageIDForApplicationExe;  

사용자 지정 작업 컨트롤을 PackageIDForApplicationExe 사용 하 여는 속성 패키지 식별자를 구성 합니다.

참고

한정자로 CommandLineArg 선언된 속성은 클라이언트 배포 중에 작업 순서 변수로 사용할 수 없습니다.

작업 범주

작업은 클래스 한정자를 사용하여 ActionCategory 작업 순서 편집기 드롭다운 메뉴에서 특정 범주와 연결할 수 있습니다.

참고

다른 작업에서 이미 사용 중인 범주를 사용하지 마세요.

구문은 다음과 같습니다.

ActionCategory{CategoryName,ActionOrder,CategoryOrder}

CategoryName
범주 이름입니다.

ActionOrder
범주 내의 작업 순서입니다.

CategoryOrder
모든 범주 내의 범주 순서입니다.

작업을 추가할 수 있는 기본 Configuration Manager 범주는 다음과 같습니다.

  • 일반

  • 디스크

  • 사용자 상태

  • 이미지

  • 드라이버

  • Settings

    클래스 한정자에서 새 범주를 지정하여 새 범주를 ActionCategory 만들 수도 있습니다. 예를 들어 다음 MOF 파일은 내 사용자 지정 범주라는 새 범주를 만듭니다. 작업은 범주 내에서 두 번째로 배치되고 범주는 전체 5위를 차지합니다.

    ActionCategory{"My Custom Category",2,5"},

ActionName

ActionName 클래스 한정자는 사용자 지정 작업 컨트롤 이름을 정의합니다. 한정자는 다음 구문을 사용합니다.

ActionName{"Assembly", "Namespace.Properties.Resources", "Control"}

Assembly
작업 컨트롤을 포함하는 어셈블리입니다.

Namespace.Properties.Resources
표시된 작업 이름 문자열을 포함하는 리소스의 네임스페이스입니다. 자세한 내용은 Configuration Manager 사용자 지정 작업 컨트롤을 만드는 방법을 참조하세요.

Control
문자열 리소스를 포함하는 컨트롤입니다.

작업 사용자 인터페이스

ActionUI 클래스 한정자는 작업에 사용되는 어셈블리 및 클래스의 위치를 정의합니다. 한정자는 다음 구문을 사용합니다.

ActionUI{"Assembly","Namespace", "Control", "Option control"}

Assembly
작업 컨트롤을 포함하는 어셈블리입니다.

Namespace
작업 컨트롤이 있는 네임스페이스입니다.

Control
작업 순서 편집기에서 표시되는 작업 컨트롤입니다. 옵션 컨트롤 페이지를 호스트합니다.

Option control
작업 순서 편집기에서 작업 옵션을 관리하는 데 사용되는 페이지입니다.

쉼표로 구분된 더 많은 컨트롤 클래스 이름을 포함하여 여러 컨트롤 탭을 구현할 수 있습니다. 예를 들면

ActionUI{"Assembly","Namespace", "Control1", "Control2", "Control3", "Option control"}

작업 변수

VariableName 정자는 속성의 기본 변수 이름을 재정의하는 데 사용됩니다.

클래스 한정자를 추가하여 클래스 속성을 작업 순서 변수로 정의할 VariableName 수 있습니다. 위의 예제에서 속성 MessageTimeout 은 이름이 RebootTimeout인 작업 변수입니다.

클래스 한정자를 VariablePrefix 사용하는 경우 변수에는 클래스 한정자 값이 접두사로 지정됩니다.

변수 사용에 대한 자세한 내용은 실행 중인 Configuration Manager 작업 순서에서 작업 순서 변수를 사용하는 방법을 참조하세요.

속성

한정자

MOF 속성에 적용할 수 있는 몇 가지 한정자도 있습니다. 다음은 일반적으로 사용됩니다.

한정자 설명
CommandLineArg 명령줄에 삽입해야 하는 속성
Not_Null 이 속성에는 값이 필요합니다.
ValueMap 허용되는 문자열 값 목록을 지정합니다.
ValueRange 허용되는 값 범위(int 필드)를 지정합니다.
RequiredIfNull 다른 속성이 null인 경우 이 속성에 값이 필요합니다.
TaskSequencePackage 속성을 패키지 식별자로 식별합니다.
VariableName 작업 순서 환경에서 속성의 다른 이름을 지정합니다.
AllowedLen 문자열의 최소 및 최대 문자 수를 지정합니다.
SuccessCodes 성공을 나타내는 실행 파일에서 하나 이상의 반환 코드를 지정합니다.

제한 사항

  • 정규 한정자 제약 조건은 클래스 속성에 적용할 수 있습니다. 예를 들어 위의 예제에서 명령줄 인수는 일 수 없습니다 null. 자세한 내용은 WMI(Windows Management Instrumentation) SDK를 참조하세요.

  • MOF 파일, 사용자 지정 작업 제어 및 클라이언트 애플리케이션 간에 속성 이름과 한정자를 동기화해야 합니다. 속성 이름은 모든 제한 사항과 일치해야 합니다. 예를 들어 속성이 필요하고 범위가 1~512여야 하는 경우 int MOF 파일에 및 ValueRange 한정자 가 있어야 Not_Null 하며, 사용자 지정 컨트롤은 속성이 설정되고 범위 내에 있는지 확인해야 하며 클라이언트 애플리케이션은 이 속성을 사용하기 전에 값을 확인해야 합니다.

참고 항목

Configuration Manager 사용자 지정 작업 정보
Configuration Manager 사용자 지정 작업 컨트롤을 만드는 방법
Configuration Manager 사용자 지정 작업에 대한 MOF 파일을 만드는 방법
실행 중인 Configuration Manager 작업 순서에서 작업 순서 변수를 사용하는 방법
사용자 지정 작업 클라이언트 애플리케이션 Configuration Manager 정보