Invoke-AsWorkflow
명령 또는 식을 Windows PowerShell 워크플로로 실행합니다.
구문
Invoke-AsWorkflow
[-CommandName <String>]
[-Parameter <Hashtable>]
[-InputObject <Object>]
[<CommonParameters>]
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
첫 번째 명령은 cmdlet을 Import-Csv
사용하여 Servers.csv 파일의 콘텐츠에서 개체를 만듭니다. 이 명령은 매개 변수를 Header
사용하여 "원격 노드"라고도 하는 대상 컴퓨터의 이름을 포함하는 열에 대한 속성을 만듭니 ServerName
다. 이 명령은 결과를 변수에 $s
저장합니다.
두 번째 명령은 워크플로를 Invoke-AsWorkflow
사용하여 Servers.csv 파일의 컴퓨터에서 명령을 실행 Get-ExecutionPolicy
합니다. 이 명령은 CommandName 매개 변수 Invoke-AsWorkflow
를 사용하여 워크플로에서 실행할 명령을 지정합니다. 매개 변수를 Parameter
사용하여 Process 값을 사용하여 cmdlet의 Get-ExecutionPolicy
매개 변수를 지정 Scope
합니다.Invoke-AsWorkflow
또한 이 명령은 워크플로 공통 매개 변수를 사용하여 각 컴퓨터에서 5번의 시도로 명령을 제한하고 PSComputerName
워크플로 공통 매개 변수를 사용하여 PSConnectionRetryCount
원격 노드(대상 컴퓨터)의 이름을 지정합니다. 매개 변수의 PSComputerName
값은 변수에 ServerName
있는 모든 개체 $s
의 속성을 가져오는 식입니다.
이러한 명령은 수백 대의 컴퓨터에서 워크플로로 명령을 실행 Get-ExecutionPolicy
합니다.
이 명령은 프로세스 값과 함께 cmdlet의 Get-ExecutionPolicy
매개 변수를 사용하여 Scope
현재 세션에서 실행 정책을 가져옵니다.
예제 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
사용하여 원격 노드(대상 컴퓨터)의 이름을 지정합니다.
이 명령은 또한 워크플로 공통 매개 변수를 JobName
사용하여 AsJob
"Ipconfig" 작업 이름을 사용하여 각 컴퓨터에서 워크플로를 백그라운드 작업으로 실행합니다.
이 명령은 각 컴퓨터의 ContainerParentJob
워크플로 작업을 포함하는 개체(System.Management.Automation.ContainerParentJob
)를 반환합니다.
매개 변수
-CommandName
지정된 cmdlet 또는 고급 함수를 워크플로로 실행합니다.
cmdlet 또는 함수 이름(예: Update-Help
, Set-ExecutionPolicy
또는 Set-NetFirewallRule
.)을 입력합니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Expression
이 cmdlet이 워크플로로 실행되는 식을 지정합니다.
식을 문자열로 입력합니다(예: "ipconfig /all"
.).
식에 공백이나 특수 문자가 포함된 경우 식을 따옴표로 묶습니다.
형식: | String |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-InputObject
파이프라인 입력을 허용하는 데 사용됩니다.
형식: | Object |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Parameter
매개 변수에 지정된 명령의 매개 변수 및 매개 변수 값을 지정 CommandName
합니다.
각 키가 매개 변수 이름이고 해당 값이 매개 변수 값인 해시 테이블을 입력합니다(예: @{ExecutionPolicy="AllSigned"}
.).
해시 테이블에 대한 자세한 내용은 about_Hash_Tables 참조하세요.
형식: | Hashtable |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
모든 개체를 이 cmdlet으로 파이프할 수 있습니다.
출력
None
이 명령은 자체 출력을 반환하지 않지만 실행하는 워크플로는 출력을 반환할 수 있습니다.
관련 링크
PowerShell