uhd-fischkopp
Goto Top

Mehrere CSV-Dateien gleichzeitig einlesen

Hi,

ich benötige mal wieder eure tatkräftige Unterstützung.
Ich habe 98 CSV-Dateien gefüllt mit Usern, für Ordnerberechtigung (98 Ordner),
die Sicherheitsgruppen habe ich händisch angelegt ^^
vermutlich geht es auch einfacher : )
Die CSV ist im Moment einfach mit den Usern untereinander befüllt.
Mit:
Import-CSV C:\csv\OnB-CSV\G_Ordner_Alle_OnB_A.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "G_Ordner_Alle_OnB_A" -members $_.users}  
kann ich einzelne CSV einlesen.
Aber kann man es auch so umbiegen, dass z.b. alle CSV-Dateien aus einem Ordner eingelesen werden
und wenn ja wie?

Beste Grüße

Content-ID: 6919969108

Url: https://administrator.de/contentid/6919969108

Ausgedruckt am: 21.11.2024 um 17:11 Uhr

em-pie
em-pie 26.04.2023 um 08:45:02 Uhr
Goto Top
Moin,

Mit Get-ChildItem() kannst du den Inhalt von Ordnern erfassen.
Hier kannst du auch filtern oder eine Rekursion ermöglichen…
6247018886
6247018886 26.04.2023 aktualisiert um 16:28:25 Uhr
Goto Top
$users = foreach($file in Get-ChildItem "C:\csv\OnB-CSV" -File -Filter *.csv){  
    (Import-CSV $file.Fullname).Users
}
Add-AdGroupMember -Identity "G_Ordner_Alle_OnB_A" -members $users  
Cheers Briggs
UHD-Fischkopp
UHD-Fischkopp 26.04.2023 um 16:22:50 Uhr
Goto Top
Uii, das schaut ganz anders aus wie das, was ich geschustert habe.
Liege ich richtig, dass der erste Eintrag in der CSV so aussehen muss¿:

"SamAccountName" "G_MA_Ordner_Alle_Onboarding_AE"  
user1
User2
User3

zu Zeile 4 jeder Ordner hat eine eigene Sicherheitsgruppe,

"SamAccountName" "G_MA_Ordner_Alle_Personal_AE"  
user1
User2

für die jeweiligen Ordner:
Onboarding, Personal.....
Und das 98 Mal.
Die Idee ist, dass die erste Zeile eingelesen wird und Importiert wird.
... Ich hoffe, man versteht den Kauderwelsch?
6247018886
Lösung 6247018886 26.04.2023 aktualisiert um 16:59:37 Uhr
Goto Top
Zitat von @UHD-Fischkopp:

Uii, das schaut ganz anders aus wie das, was ich geschustert habe.
Liege ich richtig, dass der erste Eintrag in der CSV so aussehen muss¿:

"SamAccountName" "G_MA_Ordner_Alle_Onboarding_AE"  
user1
User2
User3

zu Zeile 4 jeder Ordner hat eine eigene Sicherheitsgruppe,

"SamAccountName" "G_MA_Ordner_Alle_Personal_AE"  
user1
User2

Nein laut dem oberen Code Code muss die CSV so aussehen
"Users"  
"User1"  
"User2"  
"User3"  
Von mehreren Gruppen war nirgendwo die Rede.

Für deine Variante der Dateien sähe das aber stattdessen so aus
foreach($file in Get-ChildItem "C:\csv\OnB-CSV" -File -Filter *.csv){  
    # Datei importieren
    $csv= Import-CSV $file.Fullname -Delimiter " "  
    # Gruppenname extrahieren
    $group = ($csv | Get-Member -MemberType NoteProperty | ? Name -ne "SamAccountName" | select -First 1).Name  
    # Members
    $members = $csv.SamAccountName
    if ($members.Count -gt 0 -and $group -ne ''){  
        #  Member der Gruppe hinzufügen.
        Add-AdGroupMember -Identity $group -members $members
    }
}
UHD-Fischkopp
UHD-Fischkopp 27.04.2023 um 11:32:03 Uhr
Goto Top
Sorry, falsch ausgedrückt ; )
1K THX Ich hätte ewig gebraucht das einzeln umzusetzen.

Grüße