rakli 13 Posted January 27, 2017 Report Share Posted January 27, 2017 Hi, ich versuch die Gruppenmitgliedschaft von einem User (Quelluser) auf eine anderen User (Zieluser) zu kopieren. Leider komme ich da trotz google Hilfe nicht weiter? Was mache ich falsch? Rakli $G = get-aduser Quelluser | Get-ADPrincipalGroupMembership | Select-Object nameForEach ($i in $G){ add-adgroupmember $i -member zieluser}Add-ADGroupMember : Cannot bind parameter 'Identity'. Cannot create object of type "Microsoft.ActiveDirectory.Management.ADGroup". The adapter cannot set thevalue of property "name".At C:\Test\gruppe.ps1:10 char:21+ add-adgroupmember $i -member zieluser+ ~~ + CategoryInfo : InvalidArgument: (:) [Add-ADGroupMember], ParameterBindingException + FullyQualifiedErrorId : CannotConvertArgumentNoMessage,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember Quote Link to comment
Dukel 455 Posted January 27, 2017 Report Share Posted January 27, 2017 Lass mal das select-object weg und nutze $i.Name. Quote Link to comment
BOfH_666 577 Posted January 27, 2017 Report Share Posted January 27, 2017 (edited) Die Gruppenmitgliedschaften eines Users stehen im Attribut "MemberOf". Da brauchst Du eigentlich kein "Get-ADPrincipalGroupMembership". $Gruppen = Get-ADUser -Identity 'USER' -Properties MemberOf | Select-Object -ExpandProperty MemberOf ForEach ($Gruppe in $Gruppen) { Add-ADGroupMember -Identity $Gruppe -Members zieluser } So sollte es eigentlich klappen Edited January 27, 2017 by BOfH_666 Quote Link to comment
NilsK 2,946 Posted January 27, 2017 Report Share Posted January 27, 2017 Moin, dann will ich aber auch. ;) Die Abfrage kann noch etwas einfacher sein, weil die Select-Anweisung für den Zweck nicht nötig ist. $UserSource = 'Alogie' $UserTarget = 'PAhner' $UserSourceObject = (Get-ADUser $UserSource -Properties memberOf) foreach ($Group in $UserSourceObject.MemberOf) { Add-ADGroupMember -Identity $Group -Members $UserTarget } Gruß, Nils Quote Link to comment
Dukel 455 Posted January 27, 2017 Report Share Posted January 27, 2017 Und noch einfacher: $UserSource = 'Alogie'$UserTarget = 'PAhner'foreach ($Group in (Get-ADUser $UserSource -Properties memberOf).MemberOf) { Add-ADGroupMember -Identity $Group -Members $UserTarget} Quote Link to comment
rakli 13 Posted January 27, 2017 Author Report Share Posted January 27, 2017 Danke Quote Link to comment
MurdocX 952 Posted January 27, 2017 Report Share Posted January 27, 2017 (edited) Und noch einfacher: Ich würde die Lösung von Nils bevorzugen, da die Objekte aus der Variable gegengeprüft werden können die Objekte für weitere Verarbeitungen genutzt werden können die Objekte nicht mehrmals abgefragt werden müssen und Skripte wachsen ja ;-) Nils :thumb1: Dukel -> Award der Optimierung ;) [ EDIT ] Es geht sogar noch minimalistischer. Der berühmte Einzeiler. UND es wurde ein Fehler übersehen, denn dem Befehl ADGroupMember muss bei Identity eine Gruppe und KEIN String übergeben werden. Get-ADUser 'Alogie' -Properties memberOf | Select-Object -ExpandProperty memberOf | ForEach-Object { Get-ADGroup -Identity $_ | Add-ADGroupMember -Members 'PAhner' } Edited January 27, 2017 by MurdocX Quote Link to comment
BOfH_666 577 Posted January 27, 2017 Report Share Posted January 27, 2017 Nils :thumb1: Dukel -> Award der Optimierung ;) Na wenn ich vorher gewußt hätte, dass es was zu gewinnen gibt ...... :D ;) :cool: :schreck: Quote Link to comment
NilsK 2,946 Posted January 27, 2017 Report Share Posted January 27, 2017 Moin, du weißt doch - hier kann man nur gewinnen. :D Gruß, Nils Quote Link to comment
rakli 13 Posted January 27, 2017 Author Report Share Posted January 27, 2017 (edited) Ich teste gerade die script, dabei ist mir aufgefallen, dass sie nicht über den forest suchen, sprich Gruppen in anderen Domains werden nicht gefunden. Ich würde jetzt die Server in den Domains ins Spiel bringen, geht das noch einfacher? Auf der Exchange Konsole gibt es z.B. den Befehl Set-AdServerSettings -ViewEntireForest $true Add-ADGroupMember : Unter "DC=firma,DC=cologne" kann kein Objekt mit der ID "CN=Enterprise Admins,CN=Users,DC=firma,DC=oslo" gefunden werden. + Add-ADGroupMember -Identity $Group -Members $UserTarget + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (CN=Enterprise A...stBack,DC=loslo:ADGroup) [Add-ADGroupMember], ADIdentityNotFoundException + FullyQualifiedErrorId : Unter "DC=firma,DC=cologne" kann kein Objekt mit der ID "CN=Enterprise Admins,CN=Users,DC=firma,DC=oslo" gefunden werde n.,Microsoft.ActiveDirectory.Management.Commands.AddADGroupMember Edited January 27, 2017 by rakli Quote Link to comment
MurdocX 952 Posted January 27, 2017 Report Share Posted January 27, 2017 (edited) Das war nie die Anforderung ... Geht sicher, wenn du die richtigen Parameter bei "Get-AdUser", "Get-AdGroup" und "Add-AdGroupMember" setzt. @BOfH_666, Nils Nächstes Mal mit öffentlicher Ausschreibung :D Edited January 27, 2017 by MurdocX Quote Link to comment
NilsK 2,946 Posted January 27, 2017 Report Share Posted January 27, 2017 Moin, Das war nie die Anforderung ... Consultant, oder? :D Gruß, Nils Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.