2014-04-15 2 views
1

구조화 된 명령 순서를 지정하려고하는데 현재 가지고있는 것보다 쉬운 방법을 찾고 있습니다. 일련의 서버를 순서대로 재부팅했습니다. 서버는 계층으로되어 있으므로 계층을 특정 순서로 종료 한 다음 역순으로 다시 가져와야합니다. 또한 서버가 많아서 시간 낭비를 원하지 않기 때문에 시간이 걱정입니다. 그때 그냥 계층의 모든 반복이 코드를 반복ForEach-Object actions Powershell

$Servers | Where-Object {$_.Tier -match "App"} | ForEach-Object { 
    Shutdown-VMGuest -VM $_.Name -Confirm:$false | Out-Null 
    } 
$Servers | Where-Object {$_.Tier -match "App"} | ForEach-Object { 
    while(((Get-VM $_.Name).PowerState -ne "PoweredOff") -and ($sw.Elapsed.TotalSeconds -lt $timeout)) { 
    Start-Sleep -Seconds 5 
    } 
if ((Get-VM $_.Name).PowerState -ne "PoweredOff") { 
    Stop-VM -VM $_.Name -Confirm:$false | Out-Null 
    } 
} 

내가 가지고있는 것은 이것이다 .... FIRS를 사용하여 서버를 종료하는 쉬운 방법이 있습니까? 그런 다음 파이프를 사용하여 확인 루프로 이동하십시오. 또한, "명령 루프"를 만들 수있는 방법이있어서 관리하기 어려운 스크립트를 오래 가질 필요가 없습니다. (-> 확인 -> 중지 종료)

+3

를 사용해야합니다. 이들은 병렬로 실행되어야합니다. 작업을 순서대로 그룹화하고 순서대로 실행합니다. 완료된 작업을 순서대로 배치 할 각 계층의 목록을 작성하십시오. 마지막으로 역순으로 목록을 살펴보고 서버를 가져옵니다. – MFT

+2

@MFT가 말한 바. 예제는 [here] (http://stackoverflow.com/a/18193195/1630171)를 참조하십시오. –

답변

0

아마도 당신은 위의 활동을 실행하는 작업 (스크립트 블록)을 작성 Workflows

관련 문제