Como posso executar este script do powershell em paralelo?

1

Eu tenho 100 bancos de dados no Exchange nos quais quero executar uma tarefa. Eu poderia querer mudar o servidor atualmente montado ou qualquer outra coisa.

Quando executo este comando, cada banco de dados é sincronizado em série. Eu gostaria de executá-los todos em paralelo. Como posso conseguir isso?

Get-MailboxDatabaseCopyStatus -Server nyc01| where Status -eq Failed | Suspend-MailboxDatabaseCopy
Get-MailboxDatabaseCopyStatus -Server nyc01 | where Status -eq FailedAndSuspended | Update-MailboxDatabaseCopy- SourceServer nyc02 -DeleteExistingFiles:$true -Confirm:$false
    
por random65537 30.06.2015 / 17:51

1 resposta

1

IMO Não há necessidade de fluxo de trabalho para esse cenário. Você pode executar os comandos como um trabalho e ele será executado em paralelo, para receber o trabalho use o cmdlet receive-job.

Os Cmdlets Get-MailboxDatabaseCopyStatus , Suspend-MailboxDatabaseCopy e Update-MailboxDatabaseCopy já têm um parâmetro bulit-in -AsJob , basta adicioná-lo e ele será executado como trabalho em segundo plano em paralelo.

Get-MailboxDatabaseCopyStatus -Server nyc01| where Status -eq Failed | Suspend-MailboxDatabaseCopy -AsJob
Get-MailboxDatabaseCopyStatus -Server nyc01 | where Status -eq FailedAndSuspended | Update-MailboxDatabaseCopy -SourceServer nyc02 -DeleteExistingFiles:$true -Confirm:$false -AsJob
    
por 05.07.2015 / 11:06