---
sourceDocument: Xanadu 애플리케이션과의 통합 생성
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ko-KR/xanadu/integrate-applications

 Release :

    - xanadu

ft:locale :

    - ko-KR

ft:publication_title :

    - Xanadu 애플리케이션과의 통합 생성

ft:clusterId :

    - crint

bundleId :

    - crint

workflow :

    - Creator


---

# PowerShell 활동

# PowerShell 활동 {#ariaid-title1}

* 릴리스 버전: Xanadu
* 
* 업데이트 날짜 2024년 08월 01일
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 소요 시간: 4분

PowerShell은 .NET Framework를 기반으로 Windows 하며 컴퓨터 및 응용 프로그램 관리를 Windows 제어하고 자동화하도록 설계되었습니다.

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

ServiceNow [오케스트레이션](https://servicenow-prod.fluidtopics.net/jx6KjJuqidBCtnFud2F60A "에서 워크플로우 활동을 사용하여 오케스트레이션 외부 공급업체 시스템과 통합합니다.") 플러그인은 다음과 같은 기본 PowerShell 활동을 워크플로우에 추가합니다. PowerShell 활동 팩의 활동을 사용하는 방법에 대한 지침은 다음을 참조하세요. [PowerShell 활동 팩](https://servicenow-prod.fluidtopics.net/1SptSdaNqUXyStuwS6UwAg "PowerShell은 .NET Framework를 기반으로 Windows 하며 컴퓨터 및 응용 프로그램 관리를 Windows 제어하고 자동화하도록 설계되었습니다.")

## 레거시 실행 PowerShell 활동 {#ariaid-title2}

PowerShell 실행 활동은 MID 서버에서 PowerShell 명령을 실행합니다 Windows .
중요사항:  
이 활동은 더 이상 사용되지 않으며 새 워크플로우에 사용할 수 없습니다. 이 활동의 기능을 대체하려면 [Powershell 활동 템플릿을](https://servicenow-prod.fluidtopics.net/vUhWYYjRiHh7pasyuS0Gww#t_CreateAPowershellActivity "사용자 지정 PowerShell 활동을 생성하고 Microsoft PowerShell을 사용하여 호스트에서 워크플로우로 데이터를 반환합니다.") 사용하여 범위가 지정된 사용자 지정 활동을 생성합니다. PowerShell 실행 활동을 사용하는 이전 릴리스의 워크플로우는 계속해서 이 작업을 수행할 수 있습니다.

### 결과 값

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

* 성공
* 실패
{#r_RunPowershellActivity__ul_oqc_yxs_hp}

### 스크래치패드 항목

실행 스크립트에 의해 <var class="keyword varname">stdout</var> 에 기록된 정보는 캡처되어<var class="keyword varname"> activity.output</var> 변수의 활동으로 반환됩니다. 이 정보는 활동의 센서 스크립트에서 나중에 처리할 수 있도록 구문 분석, 처리 또는 저장(예: 스크래치패드 변수에)할 수 있습니다.  
get-date 명령을 실행하여 MID 서버의 현재 시간을 가져오는 경우를 예로 들 수 있습니다. 이 센서 스크립트는 수신된 전체 출력을 저장하지만 반환하도록 처리하여 시간만 절약할 수 있습니다.그림 1. PowerShell 활동  
주:  
이것은 지나치게 단순화된 예제입니다. 대부분의 경우 스크립트는 일부 원격 Windows 컴퓨터에 대해 작동합니다. 그러나 보안 주체는 동일합니다 - `stdout` 에 쓰여진 모든 것은 `activity.output` 에 반환되고 처리 할 수 있습니다.

### 입력 변수

{#r_RunPowershellActivity__table_kh2_mys_hp__entry__2}

| 필드 | 설명 |
|-|-|
| 호스트 이름 | 대상 Windows 컴퓨터의 IP 주소입니다. 이 값은 명령에 사용하기 위해 <var class="keyword varname">$computer</var> 변수에 매핑됩니다( 명령 필드의 예 참조). 자격 증명 테이블의 정보를 ServiceNow 기반으로 하는 <var class="keyword varname">$cred</var>이라는 PowerShell 자격 증명 변수는 호스트 이름이 가리키는 컴퓨터에서 인증됩니다. |
| 명령 | 실행할 PowerShell 명령을 입력합니다. 예를 들어, <var class="keyword varname">hostname</var> 변수가 가리키는 원격 머신에 대해 간단한 WMI 쿼리를 실행하려면 명령은 다음과 같습니다. get-wmiobject <class> -computer $computer -credential $cred 컴퓨터에서 인증된 자격 증명이 없는 경우 명령은 MID 서버 사용자의 컨텍스트에서 실행됩니다. 명령과 스크립트 파일을 모두 실행할 수는 없습니다. 명령을 지정하면 <var class="keyword varname">스크립트 파일</var> 변수가 숨겨집니다. |
| 센서 스크립트 | 프로브의 결과를 사용하여 실행할 스크립트. 프로브 출력에는 output으로 불리는 변수가 포함되어 <var class="keyword varname">있습니다</var>. 프로브의 모든 오류에는 <var class="keyword varname">error</var>로 불리는 변수가 포함됩니다. |
| 스크립트 파일 | 는 [에 대한 스크립트 파일 동기화 사용 Windows 향상된 보안](https://www.servicenow.com/docs/access?context=mid-server-script-attach&version=xanadu&pubname=xanadu-servicenow-platform&section=c_EnableScriptFileSyncWinESecure&ft:locale=en-US). 스크립트 파일과 명령을 모두 실행할 수는 없습니다. 스크립트 파일을 선택하면 <var class="keyword varname">Command</var> 변수가 숨겨집니다. |
| PowerShell 스크립트 변수 | 지정된 스크립트 파일에 사용되는 JSON 형식의 추가 매개변수입니다. |
[표 1. 입력 변수]

{#r_RunPowershellActivity__table_kh2_mys_hp}

### 상태

활동 상태는 워크플로우 엔진에 활동으로 수행할 작업을 알려줍니다.{#r_RunPowershellActivity__table_zvx_mzs_hp__entry__2}

| 상태 | 설명 |
|-|-|
| 실행 | 워크플로우 엔진은 활동의 onExecute 함수를 시작하는 것을 알고 있습니다. |
| 마침 | 활동 실행이 완료되었습니다. 활동의 결과 값을 확인합니다. |
| 취소됨 | 이 활동 또는 이 활동이 포함된 워크플로우가 취소되었습니다. |
[표 2. 상태]

{#r_RunPowershellActivity__table_zvx_mzs_hp}  
일반 워크플로우 변수 구문을 사용하여 명령줄에 대한 워크플로우 변수를 추가합니다. 위의 예에서 \<class\>가 <var class="keyword varname">myclass</var>라는 워크플로우 입력 변수에 있는 경우 명령은 다음과 같습니다.

    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 코드 {#ariaid-title3}

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

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

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

