rakli 13 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 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 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 2017 Lass mal das select-object weg und nutze $i.Name. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 2017 (bearbeitet) 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 bearbeitet 27. Januar 2017 von BOfH_666 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 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 Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 2017 Und noch einfacher: $UserSource = 'Alogie'$UserTarget = 'PAhner'foreach ($Group in (Get-ADUser $UserSource -Properties memberOf).MemberOf) { Add-ADGroupMember -Identity $Group -Members $UserTarget} Zitieren Link zu diesem Kommentar
rakli 13 Geschrieben 27. Januar 2017 Autor Melden Teilen Geschrieben 27. Januar 2017 Danke Zitieren Link zu diesem Kommentar
MurdocX 949 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 2017 (bearbeitet) 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' } bearbeitet 27. Januar 2017 von MurdocX Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 2017 Nils :thumb1: Dukel -> Award der Optimierung ;) Na wenn ich vorher gewußt hätte, dass es was zu gewinnen gibt ...... :D ;) :cool: :schreck: Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 2017 Moin, du weißt doch - hier kann man nur gewinnen. :D Gruß, Nils Zitieren Link zu diesem Kommentar
rakli 13 Geschrieben 27. Januar 2017 Autor Melden Teilen Geschrieben 27. Januar 2017 (bearbeitet) 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 bearbeitet 27. Januar 2017 von rakli Zitieren Link zu diesem Kommentar
MurdocX 949 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 2017 (bearbeitet) 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 bearbeitet 27. Januar 2017 von MurdocX Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 27. Januar 2017 Melden Teilen Geschrieben 27. Januar 2017 Moin, Das war nie die Anforderung ... Consultant, oder? :D Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.