MID 서버 PowerShell 파일

  • 릴리스 버전: Xanadu
  • 업데이트 날짜 2024년 08월 01일
  • 소요 시간: 5분
  • PowerShell 함수는 PowerShell 스크립트 모듈(*.psm1) 파일 이름 확장명을 사용하는 스크립트 파일(*.ps1)에 저장됩니다.

    PowerShell 기능은 다음 활동 팩에 포함된 PowerShell MID 서버 스크립트 파일에서 사용됩니다.
    • Active Directory
    • Exchange
    • SCCM
    • PowerShell

    PSScript.ps1

    이 스크립트는 자격 증명 테스트, 암호 암호화 및 오케스트레이션 활동 디자이너 또는 MID 스크립트 파일에 구성된 스크립트 실행과 같은 몇 가지 작업을 수행합니다. 그러나 이 문서에서는 PSScript.ps1에서 원격 호스트에 대한 액세스를 테스트하기 위해 credential.psm1 모듈을 사용하는 방법을 중점적으로 설명합니다.

    PowerShell 변수는 일반적으로 PowerShell 실행 명령 에서 직접 사용되거나 지정한 MID 서버 스크립트 파일에서 인수로 사용됩니다. PSScript.ps1에 전달되는 특수 변수(예 credType: )가 있습니다.
    그림 1. 실행 매개변수에 credType 사용
    실행 매개변수에 credType 사용

    PowerShell credType

    PowerShell 자격 증명 유형은 다음과 같습니다.

    유형 설명
    WMI 테스트 자격 증명 WMI
    Exchange testCredentilExchange
    AD testCredentilAD
    SCCM testCredentilSCCM

    PSScrip.ps1 스크립트에 자격 증명 유형이 전달되지 않은 경우 MID 서버는 기본적으로 WMI 테스트 기능을 사용하여 대상 호스트에 대한 액세스를 테스트합니다. 사용된 자격 증명 유형이 있는 경우 MID 서버는 해당 자격 증명 유형에 해당하는 테스트 기능을 실행합니다.

    종료 코드

    이러한 종료 코드는 PSScript.ps1 스크립트에서 반환되고 MID 서버 로그 파일에 기록됩니다.

    표 1. PSScript.ps1 종료 코드
    유형 테스트 기능
    0 PowerShell 명령/스크립트가 성공적으로 실행되었습니다.
    1 테스트는 성공적으로 완료되었지만 명령/스크립트를 실행하지 못했습니다.
    2 스크립트에 잘못된 구문이 전달되었습니다.
    3 MID 서버 서비스 계정을 포함한 모든 자격 증명에서 명령/스크립트를 실행하지 못했습니다.
    4 테스트를 통과하고 활동을 실행했지만 오류가 반환되었습니다. 예제 사용자를 찾을 수 없습니다.

    DiagnosticsUtil.psm1

    MID 서버는 이 모듈 파일을 사용하여 PowerShell 스크립팅을 사용하여 오케스트레이션 활동 디버깅을 지원하는 PowerShell 로깅을 수행합니다. 디버깅 명령문을 사용자 지정 스크립트에 직접 추가할 수도 있습니다.
    표 2. PowerShell 진단 유틸리티
    공공 사업 설명
    SNCLog-DebugInfo PowerShell 스크립트 또는 PowerShell 오케스트레이션 활동에 대한 디버그 메시지를 기록합니다. 예제:
    • SNCLog-DebugInfo -message "내 디버그 메시지... "
    • SNCLog-DebugInfo "내 디버그 메시지"
    SNCLog-ParameterInfo 함수 매개변수 값을 기록합니다. "function getHostName{ param( [String] $target )"의 경우 PowerShell 해시 테이블의 첫 번째 값은 실행되는 함수와 각 함수 매개 변수의 값을 나타내는 문자열입니다. 예제:
    • 단일 매개변수가 있는 함수: SNCLog-ParameterInfo @("Running getHostName", $target)
      주:
      디버그 메시지에 'Running getHostName $target:[actual value of $target]'이 표시됩니다.
    • 여러 매개변수가 있는 함수: SNCLog-ParameterInfo @("실행 중인 functionName", $param 1, $param 2, $param 3)
    SNCObfuscate-값 이 유틸리티를 사용하여 보안을 위해 값을 암호화합니다. 함수는 "$variableName":***를 표시하며, 여기서 ***는 난독 처리된 값입니다. 예제:
    SNCObfuscate-Value $password
    주:
    디버그 메시지는 "$password : ***"입니다.

    Credentials.psm1

    MID 서버는 이 모듈 파일을 사용하여 대상 호스트에 대한 액세스를 테스트합니다. PowerShell 활동에 자격 증명 유형(credType)이 정의되어 있지 않으면 MID 서버는 다음 액세스 유형 함수를 사용하여 자격 증명 테이블에 저장된 모든 Windows 자격 증명을 반복합니다. 작성된 모든 ServiceNow® PowerShell 활동은 특정 자격 증명 유형을 사용하도록 하드 코딩됩니다. 따라서 MID 서버는 지정된 기능에 대해서만 자격 증명 액세스를 테스트합니다.
    표 3. PowerShell 테스트 기능
    함수 설명
    테스트 자격 증명 WMI 객체를 사용하는 대상 호스트에서 지정된 사용자와 암호를 테스트합니다 Get-WMI .
    testCredentilAD 내장 DirectoryEntry 객체를 사용하여 대상 호스트에서 지정된 사용자 및 암호를 테스트합니다.
    testCredentialExchange (영문) 지정된 사용자 및 암호를 테스트하여 Exchange 호스트에 세션을 만듭니다. 이 테스트는 원격 호스트에서 기본 제공 PowerShell 원격 기능을 사용합니다. WinRM은 기본적으로 Exchange 서버에 구성됩니다.
    testCredentialSCCM SCCM 서버에 세션을 작성하기 위해 지정된 사용자 및 암호를 테스트합니다. 이 테스트는 원격 호스트에서 기본 제공 PowerShell 원격 기능을 사용합니다. 이 테스트를 수행하려면 WinRM을 구성해야 합니다.
    testNoCredentialAccessWMI 님 객체를 사용하여 대상 호스트에서 지정된 사용자와 암호를 테스트합니다 Get-WMI . 이 테스트는 credType 이 사용되지 않을 때 사용됩니다.
    주:
    이러한 함수 중 하나를 사용하여 테스트에 통과하면 해당 자격 증명이 PowerShell 스크립트/명령을 실행하는 데 사용됩니다. 테스트에서 이러한 기능을 사용하여 대상 호스트에 액세스하지 못하면 MID 서버는 MID 서버 서비스의 계정으로 PowerShell 스크립트/명령을 실행합니다.

    이 다이어그램은 PowerShell 활동의 대상이 되는 호스트에 대한 자격 증명 선택 동작의 종속성을 보여줍니다. 대상 호스트가 MID 서버의 IP 주소 또는 호스트 이름이면 MID 서버는 자격 증명 테이블의 모든 자격 증명을 무시하고 MID 서버 서비스의 계정을 사용합니다. 대상 호스트가 MID 서버가 아니면 모든 Windows 자격 증명이 먼저 사용됩니다. 자격 증명 테이블의 모든 자격 증명이 PowerShell 활동을 실행하지 못하면 MID 서버는 MID 서버 서비스 계정을 사용합니다.

    그림 2. PowerShell 자격 증명 선택 기준
    PowerShell 자격 증명 선택 기준

    ActiveDirectory.psm1

    이 모듈 파일은 Active Directory 활동 팩과 함께 제공되는 PowerShell 스크립트에서 사용하는 기능을 저장합니다.

    Exchange.psm1

    이 모듈 파일은 Exchange 활동 팩과 함께 제공되는 PowerShell 스크립트에서 사용하는 기능을 저장합니다.

    SCCM.psm1

    이 모듈 파일은 SCCM 활동 팩과 함께 제공되는 PowerShell 스크립트에서 사용하는 기능을 저장합니다.