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

이 명령은 수백 대의 컴퓨터에서 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 사용하여 Do기본Controllers.txt 파일에 나열된 컴퓨터에서 워크플로 작업으로 Ipconfig 명령을 실행합니다.

이 명령은 매개 변수를 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

모든 개체를 이 cmdlet으로 파이프할 수 있습니다.

출력

None

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