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-Key: 6919969108

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

Printed on: April 27, 2024 at 23:04 o'clock

Member: em-pie
em-pie Apr 26, 2023 at 06:45:02 (UTC)
Goto Top
Moin,

Mit Get-ChildItem() kannst du den Inhalt von Ordnern erfassen.
Hier kannst du auch filtern oder eine Rekursion ermöglichen…
Mitglied: 6247018886
6247018886 Apr 26, 2023 updated at 14:28:25 (UTC)
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
Member: UHD-Fischkopp
UHD-Fischkopp Apr 26, 2023 at 14:22:50 (UTC)
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?
Mitglied: 6247018886
Solution 6247018886 Apr 26, 2023 updated at 14:59:37 (UTC)
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
    }
}
Member: UHD-Fischkopp
UHD-Fischkopp Apr 27, 2023 at 09:32:03 (UTC)
Goto Top
Sorry, falsch ausgedrückt ; )
1K THX Ich hätte ewig gebraucht das einzeln umzusetzen.

Grüße