Я впервые использую start-jobs, он не работает должным образом, я неправильно его использую?
$dagName = "dag Name";
$dagObject = Get-DatabaseAvailabilityGroup -Identity $dagName;
$servers = New-Object System.Collections.ArrayList;
foreach($server in $dagObject.Servers)
{
$servers.Add($server) | Out-Null;
}
$getExchangeServers = @();
$getMailboxDatabases = @();
$getMailboxDatabasesWithStatus = @();
Start-Job -ScriptBlock {foreach ($server in $servers) {$getExchangeServers += get-exchangeserver $server;}}
Start-Job -ScriptBlock {foreach ($server in $servers) {$getMailboxDatabases += Get-MailboxDatabase -Server $server;}}
Start-Job -ScriptBlock {foreach ($server in $servers) {$getMailboxDatabasesWithStatus += Get-MailboxDatabase -Server $server -Status;}}
$servers
, и не могут получить доступ ни к одной из переменных$getMailboxDatabases
. - person TessellatingHeckler   schedule 28.06.2017param
оператор. - person BenH   schedule 28.06.2017-ArgumentList
и изменить блоки сценариев, чтобы они принимали параметры, и использовать$AllResults = Get-Job | Receive-Job -Wait -AutoRemoveJob
, чтобы получить их вывод и удалить задания, чтобы они не зависали после этого. - person TessellatingHeckler   schedule 28.06.2017$server = 'a','b','c'; Start-Job -ScriptBlock { param($p) foreach ($server in $p) { $server } } -ArgumentList @(,$Servers); $AllResults = Get-Job | Receive-Job -Wait -AutoRemoveJob; $AllResults
— это рабочий пример того, как просто поместить несколько имен серверов в задание и получить их обратно. - person TessellatingHeckler   schedule 28.06.2017