Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: Windows PowerShell 3.0
TÓPICO
about_ForEach-Parallel
DESCRIÇÃO BREVE
Descreve o constructo de linguagem ForEach -Parallel no fluxo de trabalho Windows PowerShell®
DESCRIÇÃO LONGA
O parâmetro Parallel da palavra-chave ForEach executa os comandos em um bloco de script ForEach uma vez para cada item em uma coleção especificada.
Os itens na coleção, como um disco em uma coleção de discos, são processados em paralelo. Os comandos no bloco de script são executados sequencialmente em cada item na coleção.
ForEach -Parallel só é válido em um fluxo de trabalho Windows PowerShell.
SINTAXE
ForEach -Parallel ($<item> in $<collection>)
{
[<Activity1>]
[<Activity2>]
...
}
DESCRIÇÃO DETALHADA
Como a instrução ForEach em Windows PowerShell, a variável que contém a coleção ($<Collection>) deve ser definida antes da instrução ForEach -Parallel, mas a variável que representa o item atual ($<item>) é definida na instrução ForEach –Parallel.
A construção ForEach -Parallel é diferente da palavra-chave ForEach e da palavra-chave Parallel. A palavra-chave ForEach processa os itens na coleção na sequência. A palavra-chave Parallel executa comandos em um bloco de script em paralelo. Você pode colocar um bloco de script Parallel em um bloco de script ForEach -Parallel.
Os computadores de destino em um fluxo de trabalho, como aqueles especificados pelo parâmetro comum de fluxo de trabalho PSComputerName, sempre são processados em paralelo. Você não precisa especificar a palavra-chave ForEach-Parallel para essa finalidade.
EXEMPLOS
O seguinte fluxo de trabalho contém uma instrução ForEach-Parallel que processa os discos que obtém a atividade do Get-Disk. Os comandos no bloco de script ForEach -Parallel são executados sequencialmente, mas executados nos discos em paralelo. Os discos podem ser processados simultaneamente e em qualquer ordem.
workflow Test-Workflow
{
$Disks = Get-Disk
# The disks are processed in parallel.
ForEach -Parallel ($Disk in $Disks)
{
# The commands run sequentially on each disk.
$DiskPath = $Disk.Path
$Disk | Initialize-Disk
Set-Disk -Path $DiskPath
}
}
workflow Test-Workflow
{
#Run commands in parallel.
Parallel
{
Get-Process
Get-Service
}
$Disks = Get-Disk
# The disks are processed in parallel.
ForEach -Parallel ($Disk in $Disks)
{
# The commands run in parallel on each disk.
Parallel
{
Initialize-Disk
InlineScript {.\Get-DiskInventory}
}
}
}
CONSULTE TAMBÉM
Gravando um fluxo de trabalho do Script (https://go.microsoft.com/fwlink/?LinkId=262872)
about_ForEach
about_Language_Keywords
about_Parallel
about_Workflows