Eu acho que a idéia geral é que desde que você está falando sobre paralelismo, você precisa de algo multithreaded. O Powershell poderia fazer isso facilmente com trabalhos ou fluxos de trabalho, mas 2003 é um sistema operacional antigo, portanto, você estaria limitado ao PS 2. (É claro que você também pode usar o .NET.) Aqui está um exemplo muito básico:
Foreach($_ in $ComputersFile)
{
Start-Job -ScriptBlock { Get-WMIObject Win32_ComputerSystem -Computer $_ -Credential $Creds }
}
Os trabalhos serão executados em paralelo. Quando todos os trabalhos estiverem concluídos, use Receive-Job para reunir os resultados.