Jump to content

If Exist Value in CSV Datei


Direkt zur Lösung Gelöst von BOfH_666,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Moin Leute,
ich baue derzeit ein Script und hab dazu eine Frage.

In diesem Script werden jede Menge Berechtigungen gesetzt und läuft über CSV-Dateien.
Jeder User bekommt Gruppen zugeordnet, die wiederum in der CSV stehen. Nun hat natürlich nicht jeder User die gleiche Anzahl an Gruppen. Ein Beispiel:

user,gruppe1,gruppe2,gruppe3,gruppe4,gruppe5,gruppe6
max.mustermann,test1,test2,test3,test4,test5,test6
frau.mustermann,test1,test2,test,3,test4

Nun würde bei einem normalen Ablauf natürlich der Fehler kommen, dass es in der CSV bei dem 2. Eintrag keine Gruppe5 und 6 gibt.

Theoretisch würde ich mit

 

if($null -ne $user.group2)

arbeiten und so nach und nach prüfen, ob in jeder Gruppe der CSV was steht.

Die if-Anweisung wäre dann aber ewig lang und ich frage mich, ob es da etwas schöneres gibt und ihr mir da helfen könntet?

Liebe Grüße und Danke schon mal.

bearbeitet von BlacksGood
Link zu diesem Kommentar

Die CSV müsste dann ungefähr so aussehen:

user,gruppen
max.mustermann,"test1,test2,test3,test4,test5,test6"
frau.mustermann,"test1,test2,test,3,test4"

 

 

Und mit 

https://docs.microsoft.com/en-us/powershell/module/activedirectory/add-adprincipalgroupmembership?view=windowsserver2019-ps

kannst Du in einem Rutsch mehrere Gruppenmitgliedschaften für einen User konfigurieren.  ;-)

bearbeitet von BOfH_666
Link zu diesem Kommentar
vor 57 Minuten schrieb BOfH_666:

Die CSV müsste dann ungefähr so aussehen:




user,gruppen
max.mustermann,"test1,test2,test3,test4,test5,test6"
frau.mustermann,"test1,test2,test,3,test4"

 

 

Und mit 

https://docs.microsoft.com/en-us/powershell/module/activedirectory/add-adprincipalgroupmembership?view=windowsserver2019-ps

kannst Du in einem Rutsch mehrere Gruppenmitgliedschaften für einen User konfigurieren.  ;-)



Ja, es geht aber nicht um Sicherheitsgruppen sondern um Postfachberechtigungen ;)
hätte ich vllt. dazu schreiben sollen :hmmm:

Bei SharePointOnline Gruppen mach ich das derzeit so in einem anderen Script( auch das Script ist erstmal nur hingerotzt, also nicht wundern):

 

foreach($user in $import){
    
    Add-PnPUserToGroup -Identity $user.group1 -EmailAddress $user.mail -SendEmail


    if($null -ne $user.group2) {

        Add-PnPUserToGroup -Identity $user.group3 -EmailAddress $user.mail
    }
    
    if($null -ne $user.group3) {

        Add-PnPUserToGroup -Identity $user.group2 -EmailAddress $user.mail
    }

}


Bei, in dem Fall, maximal 3 Gruppen, ist das ok....aber nicht wenn das deutlich mehr sind. Da wird das IF einfach ewig lang.

bearbeitet von BlacksGood
Link zu diesem Kommentar
  • Beste Lösung
vor 2 Stunden schrieb BlacksGood:

Ja, es geht aber nicht um Sicherheitsgruppen sondern um Postfachberechtigungen ;)
hätte ich vllt. dazu schreiben sollen :hmmm:

 

Es wär natürlich ne gute Idee, nicht nach "X" zu fragen, wenn Du eigentlich "Y" wissen willst.  :aha2:

 

vor 2 Stunden schrieb BlacksGood:

Bei, in dem Fall, maximal 3 Gruppen, ist das ok....aber nicht wenn das deutlich mehr sind. Da wird das IF einfach ewig lang.

 

Wenn Du in der Spalte mit den Gruppen/Berechtigungen mehrere durch Trennzeichen getrennte Einträge drin hast, kannst Du die mittels "-split" in ein Array aufspalten und dann mit einer Schleife über dieses Array "drüber-iterieren". ;-)   ... da brauchst Du keine 100 if's untereinanderzupacken.

 

Edit:

 

also sowas hier:

$CSVInput = @'
user,gruppen
max.mustermann,"test1,test2,test3,test4,test5,test6"
frau.mustermann,"test1,test2,test,3,test4"
'@ |
ConvertFrom-Csv -Delimiter ','

foreach ($Item in $CSVInput) {
    $GruppenListe = $Item.gruppen -split ','
    foreach ($Gruppe in $GruppenListe) {
        [PSCustomObject]@{
            User   = $Item.User
            Gruppe = $Gruppe
        }
    }
}

 

bearbeitet von BOfH_666
Link zu diesem Kommentar
vor 19 Minuten schrieb BOfH_666:

 

Es wär natürlich ne gute Idee, nicht nach "X" zu fragen, wenn Du eigentlich "Y" wissen willst.  :aha2:

 

 

Wenn Du in der Spalte mit den Gruppen/Berechtigungen mehrere durch Trennzeichen getrennte Einträge drin hast, kannst Du die mittels "-split" in ein Array aufspalten und dann mit einer Schleife über dieses Array "drüber-iterieren". ;-)   ... da brauchst Du keine 100 if's untereinanderzupacken.


mh, hast du dafür mal ein Beispiel?

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...