并行处理服务器

时间:2015-12-03 15:14:10

标签: parallel-processing powershell-workflow

ServiceStatus -Servers "Machine1", "machine2", "machine3" 

workflow ServiceStatus
{
    param([string[]]$servers) 

    foreach -Parallel ($server in $servers)
    {
        Write-Host "Chekcing status in  $server..." -ForegroundColor black -BackgroundColor green

        Get-Service W3SVC -ComputerName $server | Format-Table Name,Status,MachineName -AutoSize 

        if(!$?)
        {
            Out-File $FileName1 -Append -InputObject $server -Encoding ascii
        }
    }
}

我尝试让foreach并行执行,但它给了我一个“foreach循环附近的语法错误”错误。

1 个答案:

答案 0 :(得分:0)

Format-* cmdlet只能在PowerShell工作流程的InlineScript部分中使用。有关详细信息,请参阅here。同样适用于Write-Host

此外,您必须在调用之前定义工作流

workflow ServiceStatus {
    ...
}

ServiceStatus -Servers "Machine1", "machine2", "machine3"