다음을 통해 공유


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

이러한 명령은 수백 대의 컴퓨터에서 워크플로로 명령을 실행 Get-ExecutionPolicy 합니다. 명령은 값이 ScopeProcess인 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

입력

Object

모든 개체를 매개 변수로 파이프할 InputObject 수 있습니다.

출력

None

이 명령에서 어떠한 출력도 생성되지 않습니다. 그러나 출력을 생성할 수도 있는 워크플로를 실행합니다.