Invoke-AsWorkflow
명령 또는 식을 Windows PowerShell 워크플로로 실행합니다.
Syntax
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
이 명령은 cmdlet을 Get-ExecutionPolicy
수백 대의 컴퓨터에서 워크플로로 실행합니다.
이 명령은 CommandName 매개 변수를 사용하여 워크플로에서 실행되는 cmdlet을 지정합니다.
또한 이 명령은 PSComputerName 워크플로 일반 매개 변수를 사용하여 명령이 실행되는 컴퓨터를 지정합니다.
PSComputerName 매개 변수의 값은 Servers.txt 파일에서 컴퓨터 이름 목록을 가져오는 명령입니다Get-Content
.
매개 변수 값은 값을 사용하기 전에 명령을 실행 Get-Command
하도록 Windows PowerShell 지시하기 위해 괄호로 묶입니다.
모든 원격 명령과 마찬가지로 이 명령이 로컬 컴퓨터에서 실행되는 경우(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
합니다. 명령은 의 Invoke-AsWorkflow
CommandName 매개 변수를 사용하여 워크플로에서 실행할 명령을 지정합니다. 의 매개 변수 Invoke-AsWorkflow
를 Parameter
사용하여 cmdlet의 매개 변수를 Get-ExecutionPolicy
Process 값으로 지정 Scope
합니다. 또한 이 명령은 워크플로 공통 매개 변수를 사용하여 각 컴퓨터에서 5번의 시도로 명령을 제한하고 PSComputerName
워크플로 공통 매개 변수를 사용하여 PSConnectionRetryCount
원격 노드(대상 컴퓨터)의 이름을 지정합니다. 매개 변수의 PSComputerName
값은 변수에 있는 모든 개체 $s
의 속성을 가져오는 ServerName
식입니다.
이러한 명령은 수백 대의 컴퓨터에서 워크플로로 명령을 실행 Get-ExecutionPolicy
합니다.
명령은 값이 Scope
Process인 cmdlet의 Get-ExecutionPolicy
매개 변수를 사용하여 현재 세션에서 실행 정책을 가져옵니다.
예제 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
.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Expression
이 cmdlet이 워크플로로 실행되는 식을 지정합니다.
식(예: )을 문자열로 "ipconfig /all"
입력합니다.
식에 공백이나 특수 문자가 포함된 경우 식을 따옴표로 묶습니다.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
파이프라인 입력을 허용하는 데 사용됩니다.
Type: | Object |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Parameter
매개 변수에 지정된 명령의 매개 변수 및 매개 변수 값을 지정 CommandName
합니다.
각 키가 매개 변수 이름이고 해당 값이 매개 변수 값(예: @{ExecutionPolicy="AllSigned"}
)인 해시 테이블을 입력합니다.
해시 테이블에 대한 자세한 내용은 about_Hash_Tables 참조하세요.
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
입력
모든 개체를 매개 변수로 파이프할 InputObject
수 있습니다.
출력
None
이 명령에서 어떠한 출력도 생성되지 않습니다. 그러나 출력을 생성할 수도 있는 워크플로를 실행합니다.