PowerShell 활동

  • 릴리스 버전: Zurich
  • 업데이트 날짜 2025년 07월 31일
  • 소요 시간: 4분
  • PowerShell은 .NET Framework를 기반으로 Windows 하며 컴퓨터 및 응용 프로그램 관리를 Windows 제어하고 자동화하도록 설계되었습니다.

    이러한 활동을 사용하는 모든 MID 서버에 PowerShell을 설치해야 합니다. PowerShell을 사용하는 MID Server는 지원되는 Windows 운영 체제에 설치해야 합니다. ServiceNow 는 PowerShell 3.0에서 5.1까지 지원합니다.

    ServiceNow 오케스트레이션 플러그인은 다음과 같은 기본 PowerShell 활동을 워크플로우에 추가합니다. PowerShell 활동 팩의 활동을 사용하는 방법에 대한 지침은 다음을 참조하세요. PowerShell 활동 팩

    레거시 실행 PowerShell 활동

    PowerShell 실행 활동은 MID 서버에서 PowerShell 명령을 실행합니다 Windows .

    중요사항:
    이 활동은 더 이상 사용되지 않으며 새 워크플로우에 사용할 수 없습니다. 이 활동의 기능을 대체하려면 Powershell 활동 템플릿을 사용하여 범위가 지정된 사용자 지정 활동을 만듭니다. PowerShell 실행 작업을 사용하는 이전 릴리스의 워크플로는 계속해서 이 작업을 수행할 수 있습니다.

    결과 값

    워크플로우 디자이너는 활동의 스크립트 필드에서 activity.result를 사용하여 결과 값을 할당할 수 있습니다. 기본적으로 사용된 PowerShell 명령의 성공 또는 실패에 따라 PowerShell 실행 작업의 결과 값이 결정됩니다. 가능한 결과 값:
    • 성공
    • 실패

    스크래치패드 항목

    실행 중인 스크립트에 의해 stdout 에 기록된 정보는 캡처되어 activity.output 변수의 활동으로 반환됩니다. 이 정보는 활동의 센서 스크립트에서 나중에 처리할 수 있도록 구문 분석, 처리 또는 스크래치패드 변수에 저장할 수 있습니다.

    예를 들어 get-date 명령을 실행하여 MID 서버의 현재 시간을 가져올 수 있습니다. 이 센서 스크립트는 수신된 전체 출력을 저장하지만 반환하도록 처리하여 시간만 절약할 수 있습니다.
    그림 1. PowerShell 활동
    PowerShell 활동
    주:
    이것은 지나치게 단순화된 예입니다. 대부분의 경우 스크립트는 일부 원격 Windows 컴퓨터에 대해 작동합니다. 그러나 주체는 동일합니다 – stdout 에 기록된 모든 것은 activity.output 에 반환되고 처리할 수 있습니다.

    입력 변수

    표 1. 입력 변수
    필드 설명
    호스트 이름 대상 Windows 머신의 IP 주소입니다. 이 값은 명령에 사용할 $computer 변수에 매핑됩니다( 명령 필드의 예 참조). 자격 증명 테이블의 정보를 ServiceNow 기반으로 하는 $cred라는 PowerShell 자격 증명 변수는 호스트 이름이 가리키는 컴퓨터에서 인증됩니다.
    명령 실행할 PowerShell 명령을 입력합니다. 예를 들어, hostname 변수가 가리키는 원격 머신에 대해 간단한 WMI 쿼리를 실행하려면 명령은 다음과 같습니다.
    get-wmiobject <class> -computer $computer -credential $cred

    컴퓨터에서 자격 증명을 인증하지 않으면 MID 서버 사용자의 컨텍스트에서 명령이 실행됩니다.

    명령과 스크립트 파일을 둘 다 실행할 수는 없습니다. 명령을 지정하면 스크립트 파일 변수가 숨겨집니다.

    센서 스크립트 프로브의 결과를 사용하여 실행할 스크립트. 프로브의 출력은 output이라는 변수에 포함됩니다. 프로브의 모든 오류는 error라는 변수에 포함됩니다.
    스크립트 파일 에 대한 스크립트 파일 동기화 사용 Windows 향상된 보안. 스크립트 파일과 명령을 둘 다 실행할 수는 없습니다. 스크립트 파일을 선택하면 명령 변수가 숨겨집니다.
    PowerShell 스크립트 변수 지정된 스크립트 파일에서 사용하는 JSON 형식의 추가 매개변수입니다.

    상태

    활동 상태는 활동으로 수행할 작업을 워크플로우 엔진에 알려줍니다.
    표 2. 상태
    상태 설명
    실행 워크플로우 엔진은 활동의 onExecute 함수를 시작해야 한다는 것을 알고 있습니다.
    마침 활동 실행이 완료되었습니다. 활동의 결과 값을 확인합니다.
    취소됨 이 활동 또는 이 활동을 포함하는 워크플로우가 취소되었습니다.
    일반 워크플로우 변수 구문을 사용하여 명령줄에 워크플로우 변수를 추가합니다. 위의 예에서 <class>가 myclass라는 워크플로 입력 변수에 있는 경우 명령은 다음과 같습니다.
    get-wmiobject $ {workflow. inputs. myclass } -computer $computer –credential $cred
    Similarly  if the variable  is a scratchpad variable named myclass , the command would look like :
    get -wmiobject $ {workflow. scratchpad. myclass } -computer $computer –credential $cred

    HResult 코드

    PowerShell 스크립트에 오류가 발생하면 Windows 컴퓨터에서 오류 메시지의 일부로 HResult 코드를 반환할 수 있습니다.

    PowerShell 활동은 이 코드를 읽고 해석할 수 있습니다. 모든 PowerShell 오류에 HResult 코드가 포함된 것은 아닙니다. PowerShell 스크립트가 실패한 경우 HResult 코드를 사용하여 특정 조건으로 워크플로우를 이동할 수 있습니다.

    예를 들어 Active Directory 암호를 최소 길이 또는 복잡성과 같은 정책 요구 사항을 충족하지 않는 암호로 다시 설정하는 경우 PowerShell 스크립트는 HResult 코드 -2146022651를 반환합니다. 이 코드를 사용하려면 Condition 값이 activity.hresult = -2146022651인 활동 조건을 만듭니다. 활동이 실행될 때 PowerShell 스크립트에서 이 코드를 반환하면 워크플로우가 이 새 조건을 통해 전환됩니다.