2017-01-03 10 views
1

Кто-нибудь знает, могу ли я использовать Invoke-Command в рабочем процессе PowerShell?Можно ли вызвать команду с помощью рабочего процесса?

В настоящее время у меня есть сценарий, который проходит через текстовый файл со списком сервисов, но я бы хотел, чтобы он нажимал на все серверы сразу, стихи, проходящие один за другим. Это возможно?

Это текущий блок сценария Я работаю с:

{ 
    ForEach ($Server in $Servers) { 
     Write-Host "Copying code to $Server..." 

     If (!(Test-Path -path \\$Server\c$\Websites\Versions\v$version)) { 
      New-Item \\$Server\c$\Websites\Versions\v$version -Type Directory | Out-Null 
     } 

     Copy-Item .\Packages\v$version\* \\$Server\c$\Websites\Versions\v$version -Force -Recurse 

     Write-Host "Converting to application on $Server..." 

     Invoke-Command -ComputerName $Server -ScriptBlock $Script -Argumentlist $Version | Out-Null 
    } 
} 
+2

Вы пробовали? :) –

ответ

1

Двигатель PowerShell Workflow не способен непосредственно ссылаться PowerShell командлеты. Вместо этого, если сценарист называет командлет PowerShell внутри определения Workflow, механизм PowerShell Workflow автоматически переносит вызовы командлетов PowerShell внутри операции Workflow InlineScript.

workflow test 
{ 
    ForEach ($Server in $Servers) { 
     Write-Host "Copying code to $Server..." 

     If (!(Test-Path -path \\$Server\c$\Websites\Versions\v$version)) { 
      New-Item \\$Server\c$\Websites\Versions\v$version -Type Directory | Out-Null 
     } 

     Copy-Item .\Packages\v$version\* \\$Server\c$\Websites\Versions\v$version -Force -Recurse 

     Write-Host "Converting to application on $Server..." 

     InlineScript { 
      Invoke-Command -ComputerName $Server -ScriptBlock $Script -Argumentlist $Version | Out-Null 
     } 
    } 
} 

Что касается того, будет ли это работать, вам придется попробовать его, как предложил Матиас.

 Смежные вопросы

  • Нет связанных вопросов^_^