Jump to content

If Exist Value in CSV Datei


Go to solution Solved by BOfH_666,

Recommended Posts

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.

Edited by BlacksGood
Link to post
vor 4 Minuten schrieb BlacksGood:

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?

Es wäre meiner Meinung nach einfacher, wenn es eine Spalte für die Gruppen gäbe und Du die einfach einem Rutsch den Usern zuweist.

Link to post

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.  ;-)

Edited by BOfH_666
Link to post
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.

Edited by BlacksGood
Link to post
  • Solution
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
        }
    }
}

 

Edited by BOfH_666
Link to post
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 to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...