Hallo Zusammen,
ich versuche mir aktuell die Programmierung von Powershell beizubringen. Mich interessiert hier vor allem die Möglichkeit der Parallelisierung, da ich diese Szenarien immer in C# programmiert habe. Ich kann jedoch folgendes Verhalten nicht nachvollziehen:
Wenn ich folgenden Code ausführe...
$strComputers = Get-ADComputer -Filter {OperatingSystem -Like "Windows Server*" -and ObjectClass -like "computer"} foreach ($computer in $strComputers) { $servername=$computer.Name # Do something # Write Information $Logfile = "D:\$servername.txt" Add-content $Logfile -value "Inhalt" }
...dann werden wie gewünscht meine .Txt Dateien für jeden Server erzeugt.
Führe ich den Code hingegen in einem Workflow Block aus und parallelisiere die foreach Schleife, dann werden keine Dateien erzeugt.
workflow Test-WF{ $strComputers = Get-ADComputer -Filter {OperatingSystem -Like "Windows Server*" -and ObjectClass -like "computer"} foreach -parallel ($computer in $strComputers) { $servername=$computer.Name # Do something # Write Information $Logfile = "D:\$servername.txt" Add-content $Logfile -value "Inhalt" } }
Ich habe die Dateierzeugung mittlerweile mit jedem mir bekannten Befehl ausprobiert und sehr viel nach diesem Verhalten gesucht - aber nichts gefunden. Selbst viele Code Beispiele machen das so. Muss ich den Code mit bestimmten Rechten ausführen oder den Pfad anders angeben?
Bitte helft mir das Verhalten zu erklären. Wenn noch Infos fehlen, dann schreibt mir das bitte.
Viele Grüße
Thomas