MID 서버 PowerShell 파일

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기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 testCredentil교환
    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 @("Running functionName", $param 1, $param 2, $param 3)
    SNCObfuscate-값 이 유틸리티를 사용하여 보안을 위해 값을 암호화합니다. 함수는 "$variableName":***를 표시하며, 여기서 ***는 난독 처리된 값입니다. 예제:
    SNCObfuscate-Value $password
    주:
    디버그 메시지에는 "$password : ***"가 표시됩니다.

    Credentials.psm1

    MID 서버는 이 모듈 파일을 사용하여 대상 호스트에 대한 액세스를 테스트합니다. MID 서버는 PowerShell 활동에 자격 증명 유형(credType)이 정의되어 있지 않은 경우 다음 접근 유형 함수를 사용하여 자격 증명 테이블에 저장된 모든 Windows 자격 증명을 반복합니다. 작성된 모든 ServiceNow® PowerShell 활동은 특정 자격 증명 유형을 사용하도록 하드 코딩됩니다. 따라서 MID 서버는 지정된 기능에 대한 자격 증명 액세스만 테스트합니다.
    표 3. PowerShell 테스트 기능
    함수 설명
    테스트 자격 증명WMI 객체를 사용하여 Get-WMI 대상 호스트에서 지정된 사용자 및 암호를 테스트합니다.
    testCredentilAD 내장 DirectoryEntry 객체를 사용하여 대상 호스트에서 지정된 사용자 및 암호를 테스트합니다.
    testCredentialExchange 지정된 사용자와 암호를 테스트하여 Exchange 호스트에서 세션을 만듭니다. 이 테스트는 원격 호스트에서 기본 제공 PowerShell 원격 기능을 사용합니다. WinRM은 기본적으로 Exchange 서버에 구성됩니다.
    테스트 자격 증명SCCM 지정된 사용자와 암호를 테스트하여 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 스크립트에 사용되는 기능이 저장됩니다.