Hilfe bei Foreach benötigt (Anfänger)
Hallo,
ich habe (bereits mit Hilfe) ein funktionierendes Script mit dem die Gruppen aller aktiven AD User ausgelesen werden (Im Code von get-aduser bis zum export). Das ganze benötige ich aber für 9 OU's.
Darüber habe ich einiges gefunden und so meine OUs in eine Variable geschrieben und ein zweites Foreach eingebaut. Das klappt so nicht wie ich bemerkt habe Wäre nett wenn mir jemand erklären kann was und warum es falsch ist?
Danke
ich habe (bereits mit Hilfe) ein funktionierendes Script mit dem die Gruppen aller aktiven AD User ausgelesen werden (Im Code von get-aduser bis zum export). Das ganze benötige ich aber für 9 OU's.
Darüber habe ich einiges gefunden und so meine OUs in eine Variable geschrieben und ein zweites Foreach eingebaut. Das klappt so nicht wie ich bemerkt habe Wäre nett wenn mir jemand erklären kann was und warum es falsch ist?
Foreach($OU in $OUs){
get-aduser -Filter * -SearchBase $OU | %{
$groups = Get-ADPrincipalGroupMembership $_.SamAccountName | Select -ExpandProperty Name
foreach($group in $groups){
[pscustomobject]@{
SamAccountName = $_.SamAccountName
Gruppe = $group
}
}
} | export-csv $Ausgabe1 -Delimiter ';' -NoType -Append -Encoding UTF8/
}
Danke
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 452290
Url: https://administrator.de/contentid/452290
Ausgedruckt am: 12.11.2024 um 19:11 Uhr
4 Kommentare
Neuester Kommentar
Moin,
in Zeile 10 die angehängte Pipe ist indem Fall falsch platziert. Du überschreibst damit für jede OU die selbe Datei, also liegen im File am Schluss immer nur die User der letzten OU, logisch ne .
Außerdem ist am Ende von Zeile 10 der Slash falsch, der hat keine Funktion und führt zu Fehlern.
Ergänze einfach -Append bei Export-CSV.
Gruß W.
in Zeile 10 die angehängte Pipe ist indem Fall falsch platziert. Du überschreibst damit für jede OU die selbe Datei, also liegen im File am Schluss immer nur die User der letzten OU, logisch ne .
Außerdem ist am Ende von Zeile 10 der Slash falsch, der hat keine Funktion und führt zu Fehlern.
Ergänze einfach -Append bei Export-CSV.
Gruß W.
Sorry, falscher Film...
Was aber in deinen Variablen $OUs und $Ausgabe1 steht kann hier keiner erraten, das klappt hier einwandfrei.
$Ausgabe1 = "c:\Pfad\datei.csv"
$OUs = "OU=Test,DC=domain,DC=tld","OU=Test2,DC=domain,DC=tld"
$data = @()
Foreach($OU in $OUs){
$data += get-aduser -Filter * -SearchBase $OU | %{
$groups = Get-ADPrincipalGroupMembership $_.SamAccountName | Select -ExpandProperty Name
foreach($group in $groups){
[pscustomobject]@{
SamAccountName = $_.SamAccountName
Gruppe = $group
}
}
}
}
If ($data.Count -gt 0){
$data | export-csv -Path $Ausgabe1 -Delimiter ';' -NoType -Encoding UTF8
}