Jump to content
rmwi

Bestimmte AD Gruppenmitglieder aus CSV in andere Gruppe verschieben

Recommended Posts

Hallo,

 

ich komme einfach nicht weiter.

Aufgabe:

In einer CVS sind Gruppennamen gelistet. Die Spaltenüberschriften sind benannt mit Gruppe1 und Gruppe2. In jeder Spalte befinden sich ca. 400 Einträge.

Nun sollen die Member der Gruppe welche in Spalte "Gruppe1" in Zeile 1 sind in die Gruppe hinzugefügt werden welche in Spalte "Gruppe2" in Zeile 1 eingetragen sind. 

Soweit so einfach. Leider ist die Schwierigkeit, dass nur die Member aus der Gruppe welche in Spalte "Gruppe1" und Zeile 1 in die Gruppe aus Spalte "Gruppe2" in Zeile 1 eingefügt werden sollen die ein bestimmtes Kriterium erfüllen. Es soll geprüft werden ob die Mailadresse des Gruppenmembers mit einer bestimmten Zeichenfolge beginnt. Dann soll das entsprechende Gruppenmitglied aus der einen Gruppe entfernt werden und der anderen Gruppe hinzugefügt werden. 

 

Soweit bin ich bisher:

#CSV einlesen

$groups=Import-Csv -Delimiter ";" -Path "C:\Scripte\2019\Gruppen\VS_alle_test.csv"

#Gruppen bearbeiten

foreach ($group in $groups) {
$gmember= Get-ADGroupMember $group.Gruppe1 }
foreach ($member in $gmember) { $user = Get-Aduser $member Add-ADGroupMember -identity '$groups.Gruppe2' -Member $user.UserPrincipalName = "abc*@Mailadresse" }

selbst wenn ich im letzten Teil auf das Filtern nach UserPrincipalname (enthält die Mailadresse = geprüft mit Inhalt $User) verzichte und nur dieses verwende:

#CSV einlesen

$groups=Import-Csv -Delimiter ";" -Path "C:\Scripte\2019\Gruppen\VS_alle_test.csv"

#Gruppen bearbeiten

foreach ($group in $groups) {
$gmember= Get-ADGroupMember $group.Gruppe1 }
foreach ($member in $gmember) { $user = Get-Aduser $member Add-ADGroupMember -identity '$groups.Gruppe2' -Member $user }

kommt es zu diesen Fehlern:

Zitat

Get-ADUser : Es wurde kein Positionsparameter gefunden, der das Argument "CNXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" akzeptiert.

In Zeile:1 Zeichen:41

+ ... ) { $user = Get-Aduser $member Add-ADGroupMember -identity '$groups.e ...

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

+ CategoryInfo : InvalidArgument: (:) [Get-ADUser], ParameterBindingException

+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.ActiveDirectory.Management.Commands.GetADUser

Könnt Ihr mir dabei helfen ?

 

Gruß

Share this post


Link to post
Share on other sites

Moin,

 

deine Syntax ist von Grund auf falsch. Du kannst die Cmdlets nicht einfach so hintereinander schreiben. Auch kannst du nicht einfach aus einem Parameter einen Vergleich machen. Und schließlich funktioniert die Mehrfachverschachtelung und der Verweis auf Werte nicht so, wie du dir das denkst.

 

Vielleicht solltest du erst mal einfachere Codebeispiele ausprobieren und damit in der PowerShell laufen lernen. Deine jetzige Anforderung ist schon sehr komplex, da sollte man die Basics draufhaben.

 

Gruß, Nils

 

 

 

Share this post


Link to post
Share on other sites

Liebe Community,

 

hier die Lösung für oben genannte Aufgabe:

#CSV einlesen

$AllGroups=Import-Csv -Delimiter ";" -Path "Pfad_zur_Datei\Dateiname.csv"

#Variable definieren
 
ForEach ($Group in $AllGroups)
{
       $GroupName = $Group.Gruppe1
       $ExternGroup = $Group.Gruppe2

#Gruppenmember auslesen
 
       $AllGroupMembers = Get-ADGroupMember $GroupName

#Schleife definieren
 
       ForEach ($GroupMember in $AllGroupMembers)
       {

#Variable definieren

             $ADUser = Get-ADUser $GroupMember
             $ADUserUserPrincipalName = $ADUser.UserPrincipalName
             $SAMAccountName = $ADUser.SAMAccountName

#Bedingung abfragen
 
             If ($ADUserUserPrincipalName -like "ABC.*@Maildomäne")
             {

#Definierte Member in neue Gruppe kopieren

                    Add-ADGroupMember -Identity $ExternGroup -Members $SAMAccountName
             
#Definierte Member aus alter Gruppe entfernen

                    Remove-ADGroupMember -Identity $GroupName -Members $SAMAccountName -Confirm:$false
}
}
}

Gruß

 

  • Thanks 1

Share this post


Link to post
Share on other sites

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