2014-01-28 3 views
-1

여러 컴퓨터에서 PowerShell 스크립트를 병렬로 실행할 수 있습니까?powershell 명령을 병렬로 실행하십시오.

$TempFolder = "C:\DOWNLOADED_APPLICATIONS" 
      if(!(test-path $TempFolder)) 
      {New-Item -path $TempFolder -type directory} 

    Write-Host "" 
    Write-Host "Downloading .NET framework v4.0 installation package" -ForegroundColor Yellow; 
      $src = "\\onesoul\tools\DOTNET45\dotNetFx45_Full_x86_x64.exe" 
      $dest = "$TempFolder" + "\" + "dotNetFx45_Full_x86_x64.exe" 
      $wc = New-Object System.Net.WebClient 
      $wc.DownloadFile($src, $dest) 
      $args = " /q /norestart" 
     Write-Host "Installing .NET framework v4.0" -ForegroundColor Yellow; 
     Start-Process -FilePath $dest -ArgumentList $args -Wait 
     Write-Output "Dot net 4.5 installed" 

이 스크립트는 한 번에 한 컴퓨터에서 원격으로 실행하면 올바르게 작동합니다. 병렬로 실행하려면 어떻게해야합니까?

+1

[작업] (http://stackoverflow.com/a/18193195/1630171)을 사용할 수 있습니다. –

+0

환경에 따라 다운로드를 한 번만 수행 한 다음 다른 컴퓨터로 복사 한 다음 invoke-command를 사용하여 각 컴퓨터에서 설치를 시작할 수 있습니다. – mjolinor

답변

1

여러 원격 컴퓨터에서 스크립트를 실행하려면 PowerShell 원격을 사용하십시오. 이것은 모든 컴퓨터가 PowerShell 원격 당신이 명령을 수행하는 설정을 On으로 할 한을 연결하는 것이 필요합니다 상승 된 콘솔을 실행하는 PC에서 다음

Enable-PSRemoting -Force 

여러 컴퓨터에 대한 스크립트를 실행하기 위해 호출-명령을 사용하여 예 :

Invoke-Command -Computer server1,server2,server3 -Auth CredSSP ` 
    -FilePath c:\script.ps1 -ArgumentList scriptParameter1, scriptParameter2 

나는 당신이 원격 컴퓨터에서 네트워크 공유에 액세스하고 이후 자격 증명을 사용하여 두 번째 홉 문제를 방지하기 위해 -Auth CredSSP를 사용하는 것이 좋습니다. 또한 FilePath 매개 변수는 경로를 로컬 스크립트로 가져 와서 해당 내용을 유선을 통해 각 원격 컴퓨터에 복사합니다. 이 스크립트는 모든 원격 컴퓨터에 존재하지 않으면 다른 스크립트에 의존해서는 안됩니다. 마지막으로 자격 증명을 사용하는 경우 모든 원격 컴퓨터에서 관리자를 관리해야합니다. 그렇지 않은 경우 -Credential 매개 변수를 사용하여 수행하는 계정에 대한 자격 증명을 제공합니다.

관련 문제