다음을 통해 공유


Invoke-AsWorkflow

명령 또는 식을 Windows PowerShell 워크플로로 실행합니다.

구문

Command (기본값)

Invoke-AsWorkflow
    [-CommandName <String>]
    [-Parameter <Hashtable>]
    [-InputObject <Object>]
    [<CommonParameters>]

Expression

Invoke-AsWorkflow
    [-Expression <String>]
    [-InputObject <Object>]
    [<CommonParameters>]

Description

Invoke-AsWorkflow 워크플로는 모든 명령 또는 식을 워크플로에서 인라인 스크립트로 실행합니다. 이러한 워크플로는 표준 워크플로 의미 체계를 사용하고, 모든 워크플로 공통 매개 변수를 포함하며, 중지, 다시 시작 및 복구 기능을 포함하여 워크플로의 모든 이점을 제공합니다.

워크플로는 중요한 데이터를 수집하는 장기 실행 명령을 위해 설계되었지만 모든 명령을 실행하는 데 사용할 수 있습니다. 자세한 내용은 about_Workflows참조하세요.

이 명령에 워크플로 공통 매개 변수를 추가할 수도 있습니다. 워크플로 일반 매개 변수에 대한 자세한 내용은 about_WorkflowCommonParameters 참조하세요.

이 워크플로는 Windows PowerShell 3.0에서 도입되었습니다.

예제

예제 1: 워크플로로 cmdlet 실행

Invoke-AsWorkflow -PSComputerName (Get-Content Servers.txt) -CommandName Get-ExecutionPolicy
PSComputerName                     PSSourceJobInstanceId                   Value
--------------                     ---------------------                   -----
Server01                           77b1cdf8-8226-4662-9067-cd2fa5c3b711    AllSigned
Server02                           a33542d7-3cdd-4339-ab99-0e7cd8e59462    Unrestricted
Server03                           279bac28-066a-4646-9497-8fcdcfe9757e    AllSigned
localhost                          0d858009-2cc4-47a4-a2e0-da17dc2883d0    RemoteSigned

이 명령은 수백 대의 컴퓨터에서 워크플로로 Get-ExecutionPolicy cmdlet을 실행합니다.

이 명령은 CommandName 매개 변수를 사용하여 워크플로에서 실행되는 cmdlet을 지정합니다. PSComputerName 워크플로 공통 매개 변수를 사용하여 명령이 실행되는 컴퓨터를 지정합니다. PSComputerName 매개 변수의 값은 Servers.txt 파일에서 컴퓨터 이름 목록을 가져오는 Get-Content 명령입니다. 매개 변수 값은 값을 사용하기 전에 Windows PowerShell이 Get-Command 명령을 실행하도록 지시하는 괄호로 묶습니다.

모든 원격 명령과 마찬가지로 명령이 로컬 컴퓨터에서 실행되는 경우(PSComputerName 매개 변수 값에 로컬 컴퓨터가 포함된 경우) "관리자 권한으로 실행" 옵션을 사용하여 Windows PowerShell을 시작해야 합니다.

예제 2: 매개 변수를 사용하여 cmdlet 실행

$s = Import-Csv .\Servers.csv -Header ServerName, ServerID
Invoke-AsWorkflow -CommandName Get-ExecutionPolicy -Parameter @{Scope="Process"} -PSComputerName {$s.ServerName} -PSConnectionRetryCount 5

첫 번째 명령은 Import-Csv cmdlet을 사용하여 Servers.csv 파일의 콘텐츠에서 개체를 만듭니다. 이 명령은 Header 매개 변수를 사용하여 "원격 노드"라고도 하는 대상 컴퓨터의 이름을 포함하는 열에 대한 ServerName 속성을 만듭니다. 이 명령은 결과를 $s 변수에 저장합니다.

두 번째 명령은 Invoke-AsWorkflow 워크플로를 사용하여 Servers.csv 파일의 컴퓨터에서 Get-ExecutionPolicy 명령을 실행합니다. 이 명령은 Invoke-AsWorkflow 매개 변수를 사용하여 워크플로에서 실행할 명령을 지정합니다. Parameter Invoke-AsWorkflow 매개 변수를 사용하여 Scope cmdlet의 Get-ExecutionPolicy 매개 변수를 Process지정합니다. 또한 이 명령은 PSConnectionRetryCount 워크플로 공통 매개 변수를 사용하여 각 컴퓨터에서 5번의 시도로 명령을 제한하고 PSComputerName 워크플로 공통 매개 변수를 사용하여 원격 노드(대상 컴퓨터)의 이름을 지정합니다. PSComputerName 매개 변수의 값은 ServerName 변수에 있는 모든 개체의 $s 속성을 가져오는 식입니다.

이러한 명령은 수백 대의 컴퓨터에서 워크플로로 Get-ExecutionPolicy 명령을 실행합니다. 이 명령은 Scope cmdlet의 Get-ExecutionPolicy 매개 변수와 Process 값을 사용하여 현재 세션에서 실행 정책을 가져옵니다.

예제 3: 워크플로로 식 실행

Invoke-AsWorkflow -Expression "ipconfig /all" -PSComputerName (Get-Content DomainControllers.txt) -AsJob -JobName IPConfig
Id     Name          PSJobTypeName   State         HasMoreData   Location                Command
--     ----          -------------   -----         -----------   --------                -------
2      IpConfig      PSWorkflowJob   Completed     True          Server01, Server01...   Invoke-AsWorkflow

이 명령은 Invoke-AsWorkflow 워크플로를 사용하여 ipconfig 명령을 DomainControllers.txt 파일에 나열된 컴퓨터에서 워크플로 작업으로 실행합니다.

이 명령은 Expression 매개 변수를 사용하여 실행할 식을 지정합니다. PSComputerName 워크플로 공통 매개 변수를 사용하여 원격 노드(대상 컴퓨터)의 이름을 지정합니다.

또한 이 명령은 AsJobJobName 워크플로 공통 매개 변수를 사용하여 "Ipconfig" 작업 이름을 가진 각 컴퓨터에서 워크플로를 백그라운드 작업으로 실행합니다.

이 명령은 각 컴퓨터의 워크플로 작업을 포함하는 ContainerParentJob 개체(System.Management.Automation.ContainerParentJob)를 반환합니다.

매개 변수

-CommandName

지정된 cmdlet 또는 고급 함수를 워크플로로 실행합니다. cmdlet 또는 함수 이름(예: Update-Help, Set-ExecutionPolicy또는 Set-NetFirewallRule입력합니다.

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

Command
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Expression

이 cmdlet이 워크플로로 실행되는 식을 지정합니다. 식을 문자열(예: "ipconfig /all")으로 입력합니다. 식에 공백이나 특수 문자가 포함된 경우 식을 따옴표로 묶습니다.

매개 변수 속성

형식:String
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

Expression
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-InputObject

파이프라인 입력을 허용하는 데 사용됩니다.

매개 변수 속성

형식:Object
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

(All)
Position:Named
필수:False
파이프라인의 값:True
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

-Parameter

CommandName 매개 변수에 지정된 명령의 매개 변수 및 매개 변수 값을 지정합니다. 각 키가 매개 변수 이름이고 해당 값이 매개 변수 값(예: @{ExecutionPolicy="AllSigned"})인 해시 테이블을 입력합니다.

해시 테이블에 대한 자세한 내용은 about_Hash_Tables참조하세요.

매개 변수 속성

형식:Hashtable
Default value:None
와일드카드 지원:False
DontShow:False

매개 변수 집합

Command
Position:Named
필수:False
파이프라인의 값:False
속성 이름별 파이프라인의 값:False
나머지 인수의 값:False

CommonParameters

이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.

입력

Object

모든 객체를 이 cmdlet에 파이핑할 수 있습니다.

출력

None

이 명령은 자체 출력을 반환하지 않지만 실행하는 워크플로는 출력을 반환할 수 있습니다.