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
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
Please also mark the comments that contributed to the solution of the article
Content-Key: 452290
Url: https://administrator.de/contentid/452290
Printed on: July 27, 2024 at 12:07 o'clock
4 Comments
Latest comment
![Mitglied: 139708 Mitglied: 139708](/images/members/profile_male_64x64.png)
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.
![Mitglied: 139708 Mitglied: 139708](/images/members/profile_male_64x64.png)
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
}