real_tarantoga 11 Geschrieben 26. Dezember 2019 Melden Teilen Geschrieben 26. Dezember 2019 Hallo Board, ich hoffe, Eure Weihnachtstage waren schmackhaft und freundlich. ;) Für eine PoSh-Scriptlösung suche ich nach einer "Schleifenoptimierung" - aktuell dauert die Abfrage ewig (etwa 900 Serverobjekte). Ich frage mich, wie der Code dazu gebracht werden könnte, parallel/asynchron verarbeitet zu werden statt mittels foreach Scheibchen für Scheibchen ... Foreach ($i in $BI_VMs.Name) { $coc = Test-Connection -Quiet -Count 2 -ComputerName $i if ($coc -eq $false) { [array]$BI_Offline += $i Write-Host $i } } Vielen Dank für eure Ideen! Und allen einen sanften Rutsch nach 2020! Gruß, r_t Zitieren Link zu diesem Kommentar
MurdocX 952 Geschrieben 26. Dezember 2019 Melden Teilen Geschrieben 26. Dezember 2019 Nutze die Jobs :) https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/start-job?view=powershell-6 Zitieren Link zu diesem Kommentar
testperson 1.680 Geschrieben 26. Dezember 2019 Melden Teilen Geschrieben 26. Dezember 2019 Hi, ForEach -Parallel: https://docs.microsoft.com/en-us/powershell/module/psworkflow/about/about_foreach-parallel?view=powershell-5.1 Gruß Jan Zitieren Link zu diesem Kommentar
MurdocX 952 Geschrieben 26. Dezember 2019 Melden Teilen Geschrieben 26. Dezember 2019 Der Befehl ist tatsächlich Workflow fähig. schau mal hier: https://devblogs.microsoft.com/scripting/use-powershell-workflow-to-ping-computers-in-parallel/ Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 26. Dezember 2019 Melden Teilen Geschrieben 26. Dezember 2019 Eine kleine Beschleunigung ohne großen Aufwand könntest Du bereits dadurch erreichen, jeden Server nicht 2 mal anzupingen, sondern nur einmal. $Result = Foreach ($VMName in $BI_VMs.Name) { [PSCustomObject]@{ Name = $VMName Online = Test-Connection -Quiet -Count 1 -ComputerName $VMName } } $Result Zitieren Link zu diesem Kommentar
daabm 1.355 Geschrieben 26. Dezember 2019 Melden Teilen Geschrieben 26. Dezember 2019 vor 3 Stunden schrieb testperson: ForEach -Parallel: https://docs.microsoft.com/en-us/powershell/module/psworkflow/about/about_foreach-parallel?view=powershell-5.1 Und ich Noob hab mir da extra einen abgewurstelt, um das in Jobs laufen zu lassen - ok, ich teste auch nicht nur einen Port, sondern alle AD-relevanten, und das Ergebnis soll dann auch noch "schön" in einem Gridview aussehen. Ich werd echt alt, ich kann kaum noch Schritt halten mit dem ganzen neuen Zeugs... :-( Zitieren Link zu diesem Kommentar
real_tarantoga 11 Geschrieben 27. Dezember 2019 Autor Melden Teilen Geschrieben 27. Dezember 2019 (bearbeitet) hui, so viele antworten. DANKE! an die jobs hatte ich zwar gedacht. aber nur dran denken, hatte noch nicht gereicht ... ^^ das wird wohl die lösung werden - der foreach -parallel klingt aber auch gut. den kannte ich noch nicht . @bofh_666 & daabm - ich hab das nur exemplarisch geschrieben. im eigentlichen script passiert noch einiges mehr - aber ich wollte nur die haupthürde "foreach" klar machen. nochmals, dank an euch! gruß, r_t bearbeitet 27. Dezember 2019 von real_tarantoga Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 27. Dezember 2019 Melden Teilen Geschrieben 27. Dezember 2019 (bearbeitet) vor 2 Stunden schrieb real_tarantoga: ich hab das nur exemplarisch geschrieben. im eigentlichen script passiert noch einiges mehr Oh ... Du hast also ein Problem, nur ein ganz anderes, als Du uns hier beschrieben hast ... hmmmm bearbeitet 27. Dezember 2019 von BOfH_666 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.