Configuration Manager에서 작업 순서 변수를 사용하는 방법

적용 대상: Configuration Manager(현재 분기)

Configuration Manager의 OS 배포 기능에 있는 작업 순서 엔진은 많은 변수를 사용하여 동작을 제어합니다. 이러한 변수를 사용하여 다음을 수행할 수 있습니다.

  • 단계에 조건 설정
  • 특정 단계에 대한 동작 변경
  • 더 복잡한 작업을 위해 스크립트에서 사용

사용 가능한 모든 작업 순서 변수에 대한 참조는 작업 순서 변수를 참조하세요.

변수의 형식

변수에는 다음과 같은 여러 유형이 있습니다.

기본 제공 변수

기본 제공 변수는 작업 순서가 실행되는 환경에 대한 정보를 제공합니다. 해당 값은 전체 작업 순서 전체에서 사용할 수 있습니다. 일반적으로 작업 순서 엔진은 단계를 실행하기 전에 기본 제공 변수를 초기화합니다.

예를 들어 _SMSTSLogPath Configuration Manager 구성 요소가 로그 파일을 쓰는 경로를 지정하는 환경 변수입니다. 모든 작업 순서 단계에서 이 환경 변수에 액세스할 수 있습니다.

작업 순서는 각 단계 전에 일부 변수를 평가합니다. 예를 들어 _SMSTSCurrentActionName 현재 단계의 이름을 나열합니다.

작업 변수

작업 순서 작업 변수는 단일 작업 순서 단계에서 사용하는 구성 설정을 지정합니다. 기본적으로 단계는 실행하기 전에 해당 설정을 초기화합니다. 이러한 설정은 연결된 작업 순서 단계가 실행되는 동안에만 사용할 수 있습니다. 작업 순서는 단계를 실행하기 전에 작업 변수 값을 환경에 추가합니다. 그런 다음 단계가 실행된 후 환경에서 값을 제거합니다.

예를 들어 작업 순서에 명령줄 실행 단계를 추가합니다. 이 단계에는 시작 속성이 포함됩니다. 작업 순서는 이 속성의 기본값을 변수로 저장합니다 WorkingDirectory . 작업 순서는 명령줄 실행 단계를 실행하기 전에 이 값을 초기화합니다. 이 단계가 실행되는 동안 값에서 시작 속성 값에 액세스합니다.WorkingDirectory 단계가 완료되면 작업 순서는 환경에서 변수 값을 WorkingDirectory 제거합니다. 작업 순서에 다른 명령줄 실행 단계가 포함된 경우 새 WorkingDirectory 변수가 초기화됩니다. 이때 작업 순서는 변수를 현재 단계의 시작 값으로 설정합니다. 자세한 내용은 WorkingDirectory를 참조하십시오.

작업 변수의 기본값 은 단계가 실행될 때 표시됩니다. 값을 설정하면 작업 순서의 여러 단계에 사용할 수 있습니다. 기본값을 재정의하면 새 값이 환경에 유지됩니다. 이 새 값은 작업 순서의 다른 단계에 대한 기본값을 재정의합니다. 예를 들어 작업 순서의 첫 번째 단계로 작업 순서 변수 설정 단계를 추가합니다. 이 단계에서는 변수를 WorkingDirectory 다음으로 설정합니다.C:\ 작업 순서의 모든 명령줄 실행 단계는 새 시작 디렉터리 값을 사용합니다.

일부 작업 순서 단계에서는 특정 작업 변수를 출력으로 표시합니다. 작업 순서의 뒷부분에서 이러한 출력 변수를 읽습니다.

참고

모든 작업 순서 단계에 작업 변수가 있는 것은 아닙니다. 예를 들어 BitLocker 사용 작업과 관련된 변수가 있지만 BitLocker 사용 안 함 작업과 관련된 변수는 없습니다.

사용자 지정 변수

이러한 변수는 Configuration Manager에서 만들지 않습니다. 고유한 변수를 초기화하여 조건, 명령줄 또는 스크립트에서 사용합니다.

새 작업 순서 변수의 이름을 지정할 때 다음 지침을 따르세요.

  • 작업 순서 변수 이름에는 문자, 숫자, 밑줄 문자(_) 및 하이픈(-)을 포함할 수 있습니다.

  • 작업 순서 변수 이름의 최소 길이는 1자이고 최대 길이는 256자입니다.

  • 사용자 정의 변수는 문자(A-Z 또는 a-z)로 시작해야 합니다.

  • 사용자 정의 변수 이름은 밑줄 문자로 시작할 수 없습니다. 읽기 전용 작업 순서 변수 앞에 밑줄 문자가 옵니다.

  • 작업 순서 변수 이름은 대/소문자를 구분하지 않습니다. 예를 들어, OSDVARosdvar 동일한 작업 순서 변수입니다.

  • 작업 순서 변수 이름은 공백으로 시작하거나 끝낼 수 없습니다. 또한 포함된 공간이 있을 수 없습니다. 작업 순서에서는 변수 이름의 시작 또는 끝에 있는 공백을 무시합니다.

만들 수 있는 작업 순서 변수의 수에는 제한이 없습니다. 그러나 변수의 수는 작업 순서 환경의 크기에 따라 제한됩니다. 작업 순서 환경의 총 크기 제한은 8KB입니다. 자세한 내용은 작업 순서 정책 크기 줄이기 섹션을 참조하세요.

읽기 전용 변수

읽기 전용인 일부 변수의 값은 변경할 수 없습니다. 일반적으로 이름은 밑줄 문자()_로 시작합니다. 작업 순서에서는 작업에 이를 사용합니다. 읽기 전용 변수는 작업 순서 환경에 표시됩니다.

이러한 변수는 스크립트나 명령줄에서 유용합니다. 예를 들어 명령줄을 실행하고 출력을 다른 로그 파일과 함께 로그 파일에 _SMSTSLogPath 파이프합니다.

참고

읽기 전용 작업 순서 변수는 작업 순서의 단계별로 읽을 수 있지만 설정할 수는 없습니다. 예를 들어, 명령 줄 실행 단계에 대한 명령줄의 일부로 읽기 전용 변수를 사용합니다. 작업 순서 변수 설정 단계를 사용하여 읽기 전용 변수를 설정할 수 없습니다.

배열 변수

작업 순서는 일부 변수를 배열로 저장합니다. 배열의 각 요소는 단일 개체에 대한 설정을 나타냅니다. 장치에 구성할 개체가 두 개 이상 있는 경우 이러한 변수를 사용합니다. 다음 작업 순서 단계에서는 배열 변수를 사용합니다.

변수를 설정하는 방법

사용자 지정 변수 또는 읽기 전용이 아닌 변수의 경우 변수 값을 초기화하고 설정하는 몇 가지 방법이 있습니다.

변수를 만드는 것과 동일한 방법을 사용하여 환경에서 변수를 삭제합니다. 변수를 삭제하려면 변수 값을 빈 문자열로 설정합니다.

메서드를 결합하여 동일한 시퀀스에 대해 작업 순서 변수를 다른 값으로 설정할 수 있습니다. 예를 들어 작업 순서 편집기를 사용하여 기본값을 설정한 다음 스크립트를 사용하여 사용자 지정 값을 설정합니다.

다른 방법으로 동일한 변수를 설정하는 경우 작업 순서 엔진은 다음 순서를 사용합니다.

  1. 컬렉션 변수를 먼저 평가합니다.

  2. 장치별 변수는 컬렉션에 설정된 동일한 변수를 재정의합니다.

  3. 작업 순서 동안 메서드로 설정한 변수는 컬렉션 또는 장치 변수보다 우선합니다.

작업 순서 변수 값에 대한 일반 제한 사항

  • 작업 순서 변수 값은 4,000자를 초과할 수 없습니다.

  • 읽기 전용 작업 순서 변수는 변경할 수 없습니다. 읽기 전용 변수의 이름은 밑줄 문자()_로 시작합니다.

  • 작업 순서 변수 값은 값 사용에 따라 대/소문자를 구분할 수 있습니다. 대부분의 경우 작업 순서 변수 값은 대/소문자를 구분하지 않습니다. 암호를 포함하는 변수는 대/소문자를 구분합니다.

작업 순서 변수 설정

작업 순서에서 이 단계를 사용하여 단일 변수를 단일 값으로 설정합니다.

자세한 내용은 작업 순서 변수 설정을 참조하세요.

동적 변수 설정

작업 순서에서 이 단계를 사용하여 하나 이상의 작업 순서 변수를 설정합니다. 이 단계에서 규칙을 정의하여 사용할 변수와 값을 결정합니다.

자세한 내용은 동적 변수 설정을 참조하세요.

PowerShell 스크립트 실행

작업 순서에서 이 단계를 사용하여 PowerShell 스크립트를 사용하여 작업 순서 변수를 설정합니다.

패키지에서 스크립트 이름을 지정하거나 단계에서 PowerShell 스크립트를 직접 입력할 수 있습니다. 그런 다음 작업 순서 변수에 출력으로 단계 속성을 사용하여 스크립트 출력을 사용자 지정 작업 순서 변수에 저장합니다.

이 단계에 대한 자세한 내용은 PowerShell 스크립트 실행을 참조하세요.

참고

PowerShell 스크립트를 사용하여 TSEnvironment 개체로 하나 이상의 변수를 설정할 수도 있습니다. 자세한 내용은 Configuration Manager SDK의 실행 중인 작업 순서에서 변수를 사용하는 방법을 참조하세요.

PowerShell 스크립트 실행 단계가 있는 예제 시나리오

사용자 환경에는 여러 국가/지역의 사용자가 있으므로 여러 언어별 OS 적용 단계에서 조건으로 설정할 OS 언어를 쿼리하려고 합니다.

  1. OS 적용 단계 전에 PowerShell 스크립트 실행의 instance를 작업 순서에 추가합니다.

  2. 옵션을 사용하여 PowerShell 스크립트를 입력하여 다음 명령을 지정합니다.

    (Get-Culture).TwoLetterISOLanguageName
    

    cmdlet에 대한 자세한 내용은 Get-Culture를 참조하세요. 두 글자로 된 ISO 언어 이름에 대한 자세한 내용은 ISO 639-1 코드 목록을 참조하십시오.

  3. 작업 순서 변수에 출력 옵션의 경우 를 지정합니다CurrentOSLanguage.

    PowerShell 스크립트 실행 단계 예제 스크린샷

  4. 영어 이미지에 대한 OS 적용 단계에서 다음 조건을 만듭니다. Task Sequence Variable CurrentOSLanguage equals "en"

    OS 적용 단계의 예제 조건 스크린샷

    단계에서 조건을 만드는 방법에 대한 자세한 내용은 변수에 액세스하는 방법 - 단계 조건을 참조하십시오.

  5. 작업 순서를 저장하고 배포합니다.

영어 버전의 Windows가 설치된 장치에서 PowerShell 스크립트 실행 단계를 실행하면 명령은 값을 반환 en합니다. 그런 다음 해당 값을 사용자 지정 변수에 저장합니다. 영어 이미지에 대한 OS 적용 단계가 동일한 디바이스에서 실행되면 조건이 true로 평가됩니다. 서로 다른 언어에 대한 OS 적용 단계 인스턴스가 여러 개 있는 경우 작업 순서는 OS 언어와 일치하는 단계를 동적으로 실행합니다.

컬렉션 및 장치 변수

장치 및 컬렉션에 대한 사용자 지정 작업 순서 변수를 정의할 수 있습니다. 장치에 대해 정의하는 변수를 장치별 작업 순서 변수라고 합니다. 컬렉션에 대해 정의된 변수를 컬렉션별 작업 순서 변수라고 합니다. 충돌이 있는 경우 장치별 변수가 컬렉션별 변수보다 우선합니다. 이 동작은 특정 장치에 할당된 작업 순서 변수가 해당 장치를 포함하는 컬렉션에 할당된 변수보다 자동으로 더 높은 우선순위를 갖는다는 것을 의미합니다.

예를 들어, 장치 XYZ는 컬렉션 ABC의 멤버입니다. 값이 1인 ABC 컬렉션에 MyVariable을 할당합니다. 또한 MyVariable을 값이 2인 장치 XYZ에 할당할 수도 있습니다. XYZ에 할당된 변수는 컬렉션 ABC에 할당된 변수보다 우선순위가 높습니다. 이 변수가 있는 작업 순서가 XYZ에서 실행되면 MyVariable의 값은 2입니다.

장치별 및 컬렉션별 변수를 숨겨 Configuration Manager 콘솔에 표시되지 않도록 할 수 있습니다. Configuration Manager 콘솔에 이 값을 표시하지 않음 옵션을 사용하면 변수 값이 콘솔에 표시되지 않습니다. 작업 순서 로그 파일(smsts.log) 또는 작업 순서 디버거에도 변수 값이 표시되지 않습니다. 변수는 실행 시 작업 순서에서 계속 사용할 수 있습니다. 이러한 변수를 더 이상 숨기지 않으려면 먼저 삭제합니다. 그런 다음 변수를 숨기는 옵션을 선택하지 않고 변수를 재정의합니다.

경고

명령 줄 실행 단계의 명령줄에 변수를 포함하는 경우 작업 순서 로그 파일에 변수 값을 포함한 전체 명령줄이 표시됩니다. 잠재적으로 민감한 데이터가 로그 파일에 표시되지 않도록 하려면 작업 순서 변수 OSDDoNotLogCommandTRUE를 로 설정합니다.

기본 사이트 또는 중앙 관리 사이트에서 장치별 변수를 관리할 수 있습니다. Configuration Manager는 장치에 대해 1,000개 이상의 할당된 변수를 지원하지 않습니다.

중요

작업 순서에 컬렉션별 변수를 사용하는 경우 다음 동작을 고려합니다.

  • 컬렉션에 대한 변경 내용은 항상 계층 구조 전체에서 복제됩니다. 컬렉션 변수에 대한 모든 변경 내용은 현재 사이트의 구성원뿐만 아니라 계층 구조 전체의 컬렉션 구성원 전체에 적용됩니다.

  • 컬렉션을 삭제할 때 컬렉션에 대해 구성한 작업 순서 변수도 삭제됩니다.

장치에 대한 작업 순서 변수 만들기

  1. Configuration Manager 콘솔에서 자산 및 규정 준수 작업 영역으로 이동하고 장치 노드를 선택합니다.

  2. 대상 디바이스를 선택하고 속성을 선택합니다.

  3. 속성 대화 상자에서 변수 탭으로 전환합니다.

  4. 만들려는 각 변수에 대해 새로 만들기 아이콘을 선택합니다. 작업 순서 변수의 이름값을 지정합니다. Configuration Manager 콘솔에 표시되지 않도록 변수를 숨기려면 Configuration Manager 콘솔에 이 값을 표시하지 않음 옵션을 선택합니다.

  5. 디바이스 속성에 모든 변수를 추가한 후 확인을 선택합니다.

컬렉션에 대한 작업 순서 변수 만들기

  1. Configuration Manager 콘솔에서 자산 및 규정 준수 작업 영역으로 이동하고 장치 컬렉션 노드를 선택합니다. 대상 컬렉션을 선택하고 속성을 선택합니다.

  2. 속성 대화 상자에서 컬렉션 변수 탭으로 전환합니다.

  3. 만들려는 각 변수에 대해 새로 만들기 아이콘을 선택합니다. 작업 순서 변수의 이름값을 지정합니다. Configuration Manager 콘솔에 표시되지 않도록 변수를 숨기려면 Configuration Manager 콘솔에 이 값을 표시하지 않음 옵션을 선택합니다.

  4. 필요에 따라 작업 순서 변수를 평가할 때 사용할 Configuration Manager의 우선 순위를 지정합니다.

  5. 컬렉션 속성에 모든 변수를 추가한 후 확인을 선택합니다.

TSEnvironment COM 개체

스크립트의 변수로 작업하려면 TSEnvironment 개체를 사용합니다.

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

시작 전 명령

사전 시작 명령은 사용자가 작업 순서를 선택하기 전에 Windows PE에서 실행되는 스크립트 또는 실행 파일입니다. 사전 시작 명령은 변수를 쿼리하거나 사용자에게 정보를 묻은 다음 환경에 저장할 수 있습니다. TSEnvironment COM 개체를 사용하여 prestart 명령에서 변수를 읽고 씁니다.

자세한 내용은 작업 순서 미디어에 대한 사전 시작 명령을 참조하세요.

작업 순서 마법사

작업 순서 마법사 창에서 작업 순서를 선택하면 작업 순서 변수를 편집하는 페이지에 편집 단추가 포함됩니다. 액세스 가능한 바로 가기 키를 사용하여 변수를 편집할 수 있습니다. 이 변경은 마우스를 사용할 수 없는 경우에 유용합니다.

작업 순서 미디어 마법사

미디어에서 실행되는 작업 순서에 대한 변수를 지정합니다. 미디어를 사용하여 OS를 배포하는 경우 작업 순서 변수를 추가하고 미디어를 만들 때 해당 값을 지정합니다. 변수와 해당 값은 미디어에 저장됩니다.

참고

작업 순서는 독립 실행형 미디어에 저장됩니다. 그러나 사전 준비된 미디어와 같은 다른 모든 유형의 미디어는 관리 지점에서 작업 순서를 검색합니다.

미디어에서 작업 순서를 실행할 때 마법사의 사용자 지정 페이지에서 변수를 추가할 수 있습니다.

컬렉션별 또는 컴퓨터별 변수 대신 미디어 변수를 사용합니다. 작업 순서가 미디어에서 실행되는 경우 컴퓨터별 및 컬렉션별 변수가 적용되지 않고 사용되지 않습니다.

작업 순서는 패키지 ID와 사전 시작 명령줄을 Configuration Manager 콘솔을 실행하는 컴퓨터의 CreateTSMedia.log 파일에 씁니다. 이 로그 파일에는 작업 순서 변수에 대한 값이 포함됩니다. 이 로그 파일을 검토하여 작업 순서 변수의 값을 확인합니다.

자세한 내용은 작업 순서 미디어 만들기를 참조하세요.

변수에 액세스하는 방법

이전 섹션의 방법 중 하나를 사용하여 변수와 해당 값을 지정한 후 작업 순서에서 사용합니다. 예를 들어 기본 제공 작업 순서 변수의 기본값에 액세스하거나 변수 값을 조건으로 단계를 만듭니다.

작업 순서 환경에서 변수 값에 액세스하려면 다음 방법을 사용합니다.

단계에서 사용

작업 순서 단계에서 설정에 대한 변수 값을 지정합니다. 작업 순서 편집기에서 단계를 편집하고 변수 이름을 필드 값으로 지정합니다. 변수 이름을 백분율 기호()%로 묶습니다.

예를 들어, 명령줄 실행 단계의 명령줄 필드의 일부로 변수 이름을 사용합니다. 다음 명령줄은 컴퓨터 이름을 텍스트 파일에 기록합니다.

cmd.exe /c echo %_SMSTSMachineName% > C:\File.txt

단계 조건

기본 제공 또는 사용자 지정 작업 순서 변수를 단계 또는 그룹에 대한 조건의 일부로 사용합니다. 작업 순서는 단계 또는 그룹을 실행하기 전에 변수 값을 평가합니다.

변수 값을 평가하는 조건을 추가하려면 다음 단계를 수행합니다.

  1. 작업 순서 편집기에서 조건을 추가할 단계 또는 그룹을 선택합니다.

  2. 단계 또는 그룹의 옵션 탭으로 전환합니다. 조건 추가를 클릭하고 작업 순서 변수를 선택합니다.

  3. 작업 순서 변수 대화 상자에서 다음 설정을 지정합니다.

    • 변수: 변수의 이름입니다. 예를 들면 _SMSTSInWinPE와 같습니다.

    • 조건: 변수 값을 평가하는 조건입니다. 다음 조건을 사용할 수 있습니다.

      • 존재
      • 존재하지 않음
      • 같음
      • 같지 않음
      • 보다 큼
      • 크거나 같음
      • 보다 작음
      • 작거나 같음
      • Like (와?일드카드 * 지원)
      • (버전 2103 이상)과 같지 않음
    • : 검사할 변수의 값입니다. 예를 들면 false와 같습니다.

위의 세 가지 예제는 작업 순서가 Windows PE의 부팅 이미지에서 실행되고 있는지 테스트하는 일반적인 조건을 형성합니다.

작업 순서 변수_SMSTSInWinPE equals "false"

기존 OS 이미지를 설치하려면 기본 작업 순서 템플릿의 Capture Files 및 설정 그룹에서 이 조건을 참조하세요.

조건에 대한 자세한 내용은 작업 순서 편집기 - 조건을 참조하세요.

사용자 지정 스크립트

작업 순서가 실행되는 동안 Microsoft.SMS.TSEnvironment COM 개체를 사용하여 변수를 읽고 씁니다.

다음 Windows PowerShell 예제에서는 _SMSTSLogPath 변수를 쿼리하여 현재 로그 위치를 가져옵니다. 스크립트는 사용자 지정 변수도 설정합니다.

# Create an object to access the task sequence environment
$tsenv = New-Object -ComObject Microsoft.SMS.TSEnvironment

# Query the environment to get an existing variable
# Set a variable for the task sequence log path
$LogPath = $tsenv.Value("_SMSTSLogPath")

# Or, convert all of the variables currently in the environment to PowerShell variables
$tsenv.GetVariables() | % { Set-Variable -Name "$_" -Value "$($tsenv.Value($_))" }

# Write a message to a log file
Write-Output "Hello world!" | Out-File -FilePath "$LogPath\mylog.log" -Encoding "Default" -Append

# Set a custom variable "startTime" to the current time
$tsenv.Value("startTime") = (Get-Date -Format HH:mm:ss) + ".000+000"

Windows 설치 응답 파일

사용자가 제공하는 Windows 설치 응답 파일에는 작업 순서 변수가 포함될 수 있습니다. 형식을 %varname%사용합니다. 여기서 varname 은 변수의 이름입니다. Windows 및 ConfigMgr 설정 단계에서는 변수 이름 문자열을 실제 변수 값으로 바꿉니다. 이러한 포함된 작업 순서 변수는 unattend.xml 응답 파일의 숫자 전용 필드에 사용할 수 없습니다.

자세한 내용은 Windows 및 ConfigMgr 설정을 참조하세요.

참고 항목