Como posso acelerar os cmdlets do PowerShell que estão usando o parâmetro -CimSession?

2

Como o título diz, como alguém poderia acelerar a execução deste minúsculo roteiro? Estou usando o New-CimSession desse jeito certo, afinal?

$computers = Get-ADComputer -SearchBase "OU=W2012,OU=Servers,DC=contoso,DC=com" -Filter *

foreach ($computer in $computers) 
{
    Get-ScheduledTask -TaskName "SomeTask" -CimSession (New-CimSession -ComputerName $computer.Name) 
}
    
por Matze 10.12.2014 / 17:14

2 respostas

1

Examine os trabalhos em segundo plano para o cmdlet Get-ScheduledTask. Isso executará o comando de forma assíncrona.

foreach ($computer in $computers) {
    start-job -scriptblock {
        #Parse Args
        $CompName = $args[0]
        $TaskName = $args[1]

        Get-ScheduledTask -TaskName $TaskName -CimSession (New-CimSession -ComputerName $CompName)
    } -name( "SchedTask_$($computer)" ) -ArgumentList $computer, "Task Name"
}

Depois disso, você precisa aguardar até que seus trabalhos estejam em um estado "Concluído" e, em seguida, use Receive-Job para obter a saída. Geek School: Aprenda a usar trabalhos no PowerShell

    
por 17.12.2014 / 17:36
-1

Basta fazer:

$computers = Get-ADComputer -SearchBase "OU=W2012,OU=Servers,DC=contoso,DC=com" -Filter *
$sessions = New-CimSession -ComputerName $computers.Name

Get-ScheduledTask -TaskName "SomeTask" -CimSession $sessions 
    
por 29.01.2015 / 15:58