about_WorkflowCommonParameters

간단한 설명

이 항목에서는 모든 Windows PowerShell 워크플로 명령에 유효한 매개 변수에 대해 설명합니다. Windows PowerShell 엔진은 워크플로에 이러한 매개 변수를 추가하므로 모든 워크플로에서 이러한 매개 변수를 사용할 수 있으며 사용자가 작성한 워크플로에서 자동으로 사용하도록 설정됩니다.

자세한 설명

Windows PowerShell 워크플로 공통 매개 변수는 모든 Windows PowerShell 워크플로 및 활동에 사용할 수 있는 cmdlet 매개 변수 집합입니다. 워크플로 작성자가 아닌 Windows PowerShell 워크플로 엔진에 의해 추가되며 워크플로 및 활동에서 자동으로 사용할 수 있습니다. 그러나 세 수준 깊이 중첩된 워크플로는 워크플로 공통 매개 변수를 비롯한 일반적인 매개 변수를 지원하지 않습니다.

모든 워크플로 매개 변수는 선택 사항이며 명명되었습니다(위치가 아님). 파이프라인에서 입력을 받지 않습니다.

대부분의 워크플로 공통 매개 변수에는 PSPSComputerNamePSCredential과 같은 접두사가 있습니다. PS 접두사 매개 변수는 대상 컴퓨터("원격 노드"라고도 함)에 대한 연결 및 실행 환경을 구성합니다.

PSAllowRedirectionAsJob과 같은 대부분의 워크플로 공통 매개 변수에는 Windows PowerShell 원격 및 백그라운드 작업에 사용되는 매개 변수와 유사한 이름이 있습니다. 이러한 매개 변수는 비슷한 이름의 원격 및 작업 매개 변수와 동일한 방식으로 작동하므로 원격 및 작업에서 개발한 지식을 사용하여 워크플로를 관리할 수 있습니다.

워크플로는 Windows PowerShell 3.0에 도입됩니다.

매개 변수 설명

이 섹션에서는 워크플로 공통 매개 변수에 대해 설명합니다.

-AsJob <SwitchParameter>

워크플로를 워크플로 작업으로 실행합니다. 워크플로 명령은 부모 작업을 나타내는 개체를 즉시 반환합니다. 부모 작업에는 각 대상 컴퓨터에서 실행되는 자식 작업이 포함됩니다. 작업을 관리하려면 Job cmdlet을 사용합니다. 작업 결과를 가져오려면 Receive-Job을 사용합니다.

-JobName <문자열>

워크플로 작업의 이름을 지정합니다. 기본적으로 작업의 이름은 Job<n>입니다. 여기서 <n> 는 서수입니다.

워크플로 명령에서 JobName 매개 변수를 사용하는 경우 워크플로는 작업으로 실행되고 워크플로 명령은 명령에 AsJob 매개 변수를 포함하지 않더라도 작업 개체를 반환합니다.

Windows PowerShell 백그라운드 작업에 대한 자세한 내용은 about_Jobs를 참조하세요.

-PSAllowRedirection <SwitchParameter>

대상 컴퓨터에 대한 연결 리디렉션을 허용합니다.

PSConnectionURI 매개 변수를 사용하는 경우 원격 대상은 다른 URI로 리디렉션하는 명령을 반환할 수 있습니다. 기본적으로 Windows PowerShell 연결을 리디렉션하지 않지만 PSAllowRedirection 매개 변수를 사용하여 대상 컴퓨터에 대한 연결 리디렉션을 허용할 수 있습니다.

기본 설정 변수의 MaximumConnectionRedirectionCount 속성 또는 PSSessionOption 매개 변수 값의 $PSSessionOptionMaximumConnectionRedirectionCount 속성을 설정하여 연결이 리디렉션되는 횟수를 제한할 수도 있습니다. 기본값은 5입니다. 자세한 내용은 PSSessionOption 매개 변수 및 New-PSSessionOption에 대한 설명을 참조하세요.

-PSApplicationName <문자열>

대상 컴퓨터에 연결하는 데 사용되는 연결 URI의 애플리케이션 이름 세그먼트를 지정합니다. 명령에서 ConnectionURI 매개 변수를 사용하지 않는 경우 이 매개 변수를 사용하여 응용 프로그램 이름을 지정할 수 있습니다.

기본값은 로컬 컴퓨터의 $PSSessionApplicationName 기본 설정 변수 값입니다. 이 기본 설정 변수가 정의되지 않은 경우 기본값은 입니다 WSMAN. 이 값은 대부분의 사용에 적합합니다. 자세한 내용은 about_Preference_Variables 참조하세요.

WinRM 서비스는 애플리케이션 이름을 사용하여 연결 요청을 제공하는 수신기를 선택합니다. 이 매개 변수 값은 원격 컴퓨터에 있는 수신기의 URLPrefix 속성 값과 일치해야 합니다.

-PSAuthentication <AuthenticationMechanism>

대상 컴퓨터에 연결할 때 사용자의 자격 증명을 인증하는 데 사용되는 메커니즘을 지정합니다.

유효한 값은 다음과 같습니다.

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

기본값은 Default입니다.

이 매개 변수의 값에 대한 자세한 내용은 PowerShell SDK의 System.Management.Automation.Runspaces.AuthenticationMechanism 열거형에 대한 설명을 참조하세요.

경고

사용자 자격 증명이 인증할 원격 컴퓨터로 전달되는 CredSSP(Credential Security Service Provider) 인증은 원격 네트워크 공유 액세스 등 두 개 이상의 리소스에서 인증이 필요한 명령에 사용됩니다. 이렇게 하면 원격 작업의 보안 위험이 커집니다. 원격 컴퓨터가 손상된 경우 이 컴퓨터로 전달된 자격 증명을 사용하여 네트워크 세션을 제어할 수 있습니다.

-PSAuthenticationLevel <AuthenticationLevel>

대상 컴퓨터에 대한 연결에 대한 인증 수준을 지정합니다. 기본값은 Default입니다.

유효한 값은 다음과 같습니다.

속성 Description
Unchanged 인증 수준이 이전 명령과 동일합니다.
Default Windows 인증.
None COM 인증이 없습니다.
Connect 연결 수준 COM 인증입니다.
Call 호출 수준 COM 인증입니다.
Packet 패킷 수준 COM 인증입니다.
PacketIntegrity 패킷 무결성 수준 COM 인증입니다.
PacketPrivacy 패킷 전용 수준 COM 인증입니다.

-PSCertificateThumbprint <문자열>

이 작업을 수행할 권한이 있는 사용자 계정의 디지털 공개 키 인증서(X509)를 지정합니다. 인증서의 인증서 지문을 입력합니다.

인증서는 클라이언트 인증서 기반 인증에 사용됩니다. 인증서 손 도장(Thumbprint)은 로컬 사용자 계정으로만 매핑될 수 있고 도메인 계정에는 사용할 수 없습니다.

인증서를 얻으려면 Windows PowerShell Cert: 드라이브에서 Get-Item 또는 Get-ChildItem cmdlet을 사용합니다.

-PSComputerName <String[]>

워크플로의 대상 노드인 컴퓨터 목록을 지정합니다. 워크플로의 명령 또는 활동은 이 매개 변수를 사용하여 지정된 컴퓨터에서 실행됩니다. 기본값은 로컬 컴퓨터입니다.

하나 이상의 컴퓨터의 NETBIOS 이름, IP 주소 또는 정규화된 도메인 이름을 쉼표로 구분된 목록으로 입력합니다. 로컬 컴퓨터를 지정하려면 컴퓨터 이름, localhost또는 점(.)을 입력합니다.

PSComputerName 매개 변수 값에 로컬 컴퓨터를 포함하려면 관리자 권한으로 실행 옵션을 사용하여 Windows PowerShell 엽니다.

이 매개 변수를 명령에서 생략하거나 값이 $null 또는 빈 문자열인 경우 워크플로 대상은 로컬 컴퓨터이고 Windows PowerShell 원격은 명령을 실행하는 데 사용되지 않습니다.

ComputerName 매개 변수 값에 IP 주소를 사용하려면 명령에 PSCredential 매개 변수가 포함되어야 합니다. 또한 HTTPS 전송을 사용하도록 컴퓨터를 구성하거나 원격 컴퓨터의 IP 주소를 로컬 컴퓨터의 WinRM TrustedHosts 목록에 포함해야 합니다. TrustedHosts 목록에 컴퓨터 이름을 추가하는 방법에 대한 지침은 about_Remote_Troubleshooting "신뢰할 수 있는 호스트 목록에 컴퓨터를 추가하는 방법"을 참조하세요.

-PSConfigurationName <문자열>

대상 컴퓨터에서 세션을 구성하는 데 사용되는 세션 구성을 지정합니다. 대상 컴퓨터(워크플로 서버 컴퓨터가 아님)에 세션 구성을 입력합니다. 기본값은 Microsoft.PowerShell.Workflow입니다.

-PSConnectionRetryCount <UInt>

첫 번째 연결 시도가 실패할 경우 각 대상 컴퓨터에 연결하려는 최대 시도 횟수를 지정합니다. 1에서 4,294,967,295(UInt.MaxValue) 사이의 숫자를 입력합니다. 기본값인 0(0)은 다시 시도하지 않음을 나타냅니다.

-PSConnectionRetryIntervalSec <UInt>

연결 다시 시도 사이의 지연 시간(초)을 지정합니다. 기본값은 0(0)입니다. 이 매개 변수는 PSConnectionRetryCount 값이 적어도 1인 경우에만 유효합니다.

-PSConnectionURI <System.Uri>

대상 컴퓨터의 워크플로에 대한 연결 엔드포인트를 정의하는 URI(Uniform Resource Identifier)를 지정합니다. URI는 정규화된 URI여야 합니다.

이 문자열의 형식은 다음과 같습니다.

<Transport>://<ComputerName>:<Port>/<ApplicationName>

기본값은 http://localhost:5985/WSMAN입니다.

PSConnectionURI를 지정하지 않으면 PSUseSSL, PSComputerName, PSPortPSApplicationName 매개 변수를 사용하여 PSConnectionURI 값을 지정할 수 있습니다.

URI의 전송 세그먼트에 유효한 값은 HTTP 및 HTTPS입니다. 전송 세그먼트를 사용하여 연결 URI를 지정하지만 포트를 지정하지 않으면 HTTP 및 HTTPS 443 의 경우 표준 포트 80 를 사용하여 세션이 만들어집니다. Windows PowerShell 원격에 기본 포트를 사용하려면 HTTP 또는 5986 HTTPS용 포트 5985 를 지정합니다.

-PSCredential <PSCredential>

대상 컴퓨터에서 워크플로를 실행할 수 있는 권한이 있는 사용자 계정을 지정합니다. 기본값은 현재 사용자입니다. 이 매개 변수는 PSComputerName 매개 변수가 명령에 포함된 경우에만 유효합니다.

사용자 이름(예: User01 또는 Domain01\User01)을 입력하거나 cmdlet이 반환하는 것과 같은 PSCredential 개체가 포함된 변수를 Get-Credential 입력합니다. 사용자 이름만 입력하면 암호를 입력하라는 메시지가 표시됩니다.

-PSElapsedTimeoutSec <UInt32>

워크플로 및 모든 관련 리소스가 시스템에서 유지 관리되는 기간을 결정합니다. 시간 제한이 만료되면 워크플로가 계속 처리되고 있더라도 삭제됩니다. 10에서 4,294,967,295 사이의 값을 입력합니다. 기본값( 0 0)은 경과된 시간 제한이 없음을 의미합니다.

-PSParameterCollection <Hashtable[]>

다른 대상 컴퓨터에 대해 서로 다른 워크플로 공통 매개 변수 값을 지정합니다.

각 대상 컴퓨터에 대해 하나의 해시 테이블이 있는 해시 테이블의 쉼표로 구분된 목록을 입력합니다. 각 해시 테이블에서 첫 번째 키는 PSComputerName 이고 해당 값은 대상 컴퓨터의 이름입니다. 와일드카드 문자는 컴퓨터 이름에 허용됩니다. 해시 테이블의 나머지 키에 대해 키는 매개 변수 이름이고 값은 매개 변수 값입니다.

예를 들면 다음과 같습니다.

-PSParameterCollection @{PSComputerName="*"; PSElapsedTimeoutSec=20},
@{PSComputerName="Server02"},
@{PSComputerName="Server03"},
@{PSComputerName="Server01"; PSElapsedTimeoutSec=10}

위의 예제에서 모든 연결에는 자체 시간 제한(초)을 지정하여 기본값을 재정의 20 하는 Server01을 제외하고 모든 연결에 기본 PSElapsedTimeoutSec 초가 10 있습니다.

-PSPersist <부울>

워크플로에 지정된 검사점 외에 워크플로에 검사점도 추가합니다.

이 매개 변수는 PSPersist 작업 공통 매개 변수, 활동 또는 $PSPersistPreference 변수를 사용하여 지정한 것과 같은 워크플로의 Checkpoint-Workflow 검사점을 표시할 수 없습니다.

"검사점" 또는 "지속성 지점"은 워크플로가 실행되는 동안 캡처되고 디스크 또는 SQL 데이터베이스의 지속성 저장소에 저장되는 워크플로 상태 및 데이터의 스냅샷입니다. Windows PowerShell 워크플로는 저장된 데이터를 사용하여 워크플로를 다시 시작하는 대신 마지막 지속성 지점에서 일시 중단되거나 중단된 워크플로를 다시 시작합니다.

유효한 값은

  • (기본값) 이 매개 변수를 생략하면 워크플로에 지정된 검사점 외에 워크플로의 시작과 끝에 검사점이 추가됩니다.

  • $True. 워크플로에 지정된 검사점 외에도 워크플로의 시작과 끝에 검사점과 각 작업 후에 검사점이 추가됩니다.

  • $False. 검사점이 추가되지 않습니다. 검사점은 워크플로에 지정된 경우에만 수행됩니다.

-PSPort <Int32>

대상 컴퓨터의 네트워크 포트를 지정합니다. 기본 포트는 (HTTP용 WinRM 포트) 및 5986 (HTTPS용 WinRM 포트)입니다 5985 .

PSPort 매개 변수를 사용해야 하는 경우가 아니면 사용하지 마세요. 명령의 포트 집합은 명령이 실행되는 모든 컴퓨터 또는 세션에 적용됩니다. 대체 포트 설정을 사용하면 일부 컴퓨터에서 명령이 실행되지 않을 수 있습니다. 대체 포트를 사용하려면 먼저 원격 컴퓨터에 해당 포트에서 수신 대기할 WinRM 수신기를 구성해야 합니다.

-PSPrivateMetadata <Hashtable>

워크플로 작업에 사용자 지정된 정보를 제공합니다. 해시 테이블을 입력합니다. 키와 값은 각 워크플로에 대해 사용자 지정됩니다. 워크플로의 프라이빗 메타데이터에 대한 자세한 내용은 워크플로에 대한 도움말 항목을 참조하세요.

이 매개 변수는 Windows PowerShell 워크플로 엔진에서 처리되지 않습니다. 대신 엔진은 해시 테이블을 워크플로에 직접 전달합니다.

-PSRunningTimeoutSec <UInt32>

워크플로가 일시 중단된 시간을 제외하고 워크플로의 실행 시간을 초 단위로 지정합니다. 시간이 만료되면 워크플로 실행이 완료되지 않으면 Windows PowerShell 워크플로 엔진이 워크플로 실행을 강제로 중지합니다.

-PSSessionOption <PSSessionOption>

세션에 대한 고급 옵션을 대상 컴퓨터로 설정합니다. cmdlet을 사용하여 만든 개체와 같은 PSSessionOption 개체를 New-PSSessionOption 입력합니다.

세션 옵션의 기본값은 설정된 경우 기본 설정 변수의 $PSSessionOption 값에 따라 결정됩니다. 그렇지 않으면 세션 구성에 지정된 값을 사용합니다.

기본값을 포함한 세션 옵션에 대한 설명은 New-PSSessionOption을 참조하세요. 기본 설정 변수에 $PSSessionOption 대한 자세한 내용은 about_Preference_Variables.

-PSUseSSL <SwitchParameter>

SSL(Secure Sockets Layer) 프로토콜을 사용하여 대상 컴퓨터에 대한 연결을 설정합니다. 기본적으로 SSL은 사용되지 않습니다.

WS-Management는 네트워크를 통해 전송되는 모든 Windows PowerShell 내용을 암호화합니다. UseSSL 은 HTTP 대신 HTTPS를 통해 데이터를 보내는 추가 보호 기능입니다. 이 매개 변수를 사용하지만 명령에 사용되는 포트에서 SSL을 사용할 수 없는 경우 명령이 실패합니다.

참고 항목