Quick & Dirty: Active Directory Gruppen von Benutzer zu Benutzer kopieren

Ich habe eine kleine GUI erstellt, welche Active Directory Gruppen von einem Benutzer zum anderen Benutzer kopiert. Mit dem Script lassen sich schnell alle Gruppen eines Benutzer auf ein anderes Benutzerkonto übertragen:

Active Directory Gruppen von Benutzer zu Benutzer kopieren

Die GUI ist nur sehr rudimentär, es lässt sich ein Quellbenutzerkonto und ein Zielbenutzerkonto auswählen, ein Klick auf “Gruppen von Quelle zu Ziel KOPIEREN” überträgt alle Gruppen vom Quellbenutzer zum Zielbenutzer, lässt aber bereits vorhandene Gruppen vom Zielbenutzer unverändert.

Mit einem Klick auf “Gruppen von Quelle zu Ziel ERSETZEN”, werden alle Gruppen des Zielbenutzers zunächst entfernt und dann alle Gruppen des Quellbenutzers hinzugefügt.

Active Directory Gruppen von Benutzer zu Benutzer kopieren

Wie schon erwähnt ist dieses Script Quick and Dirty, aber wer möchte kann es ja anpassen und Fehlerbehandlung und vielleicht auch eine Sicherheitsabfrage hinzufügen, dass fehlt nämlich alles…

image

Eigentlich ist der AD Picker der Grund für dieses kleine Script, den wollte ich nämlich testen. Der AD Picker ist zwar schon älter, funktioniert aber auch mit Server 2016 einwandfrei. Für den AD Picker habe ich in Zukunft noch einige Anwendungsfälle.

Den AD Object Picker gibt es hier zum separat zum Download:

Active Directory Object Picker Dialog

Die nötige DLL ist allerdings im Download des Scripts bereits enthalten und muss nicht einzeln runtergeladen werden.

Falls jemand eine andere Möglichkeit kennt Active Directory Objekte innerhalb von PowerShell Scripten auszuwählen, bitte kurzen Kommentar hinterlassen. Voraussetzung für die GUI sind die PowerShell CMDLets für Active Directory.

Hier gibt es das Script zum Download:

Im Archiv findet sich auch die Sapien PowerShell Studio Datei, so lässt sich mittels PowerShell Studio die Oberfläche anpassen.

10 thoughts on “Quick & Dirty: Active Directory Gruppen von Benutzer zu Benutzer kopieren”

  1. Auch ich kann leider das Script nicht ausführen. Erhalte den Fehler:

    Add-Type : Die Datei oder Assembly „file:///C:\Users\a***\Desktop\GroupCopy\bin\CubicOrange.Windows.Forms.ActiveDirectory.dll“ oder eine Abhängigkeit davon wurde nicht gefunden. Der Vorgang wird nicht unterstützt. (Ausnahme von
    HRESULT: 0x80131515)
    In C:\Users\a****\Desktop\GroupCopy\GroupCopy.Export.ps1:79 Zeichen:2
    + Add-Type -Path (Join-Path -Path (Split-Path $script:MyInvocation. …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Add-Type], FileLoadException
    + FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell.Commands.AddTypeCommand

    Reply
  2. Hi Frank,
    jaaa… wenn ich doch mal Ahnung von VB hätte..
    Aber ich habs gerade über die GUI ausprobiert.. das scheitert schon daran, Quell- und Zielbenutzer einzutragen/einzusetzen/auszuwählen.
    Fehlt da vielleicht noch was von ausserhalb des zip-archives?

    Schönen Gruß,
    Andre

    Reply
  3. Hallo,
    dein tool ist genau was ich suche… fast genau!
    Kann man das auch ohne GUI laufen lassen und Quell- und ZielBenutzer als Parameter übergeben?
    Das wäre dann GENAU was ich suche. ;-)

    Andre

    Reply
    • Hi Andre,
      du kannst das Script etwas anpassen, dann ist die Funktion möglich. Eigentlich brauchst du dann nur die paar relevanten Zeilen aus meinem Script kopieren und um einen „param“ Block erweitern.
      Gruß, Frank

      Reply
  4. Leider bekomme ich immer folgende Meldung und der Picker funktioniert dann natürlich nicht:

    Add-Type : Could not load file or assembly ‚file:///[PATH]\GroupCopy\bi
    n\CubicOrange.Windows.Forms.ActiveDirectory.dll‘ or one of its dependencies. Operation is not supported. (Exception
    from HRESULT: 0x80131515)
    At [PATH]\GroupCopy\GroupCopy.Export.ps1:79 char:2
    + Add-Type -Path (Join-Path -Path (Split-Path $script:MyInvocation.MyCommand.Path …
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [Add-Type], FileLoadException
    + FullyQualifiedErrorId : System.IO.FileLoadException,Microsoft.PowerShell.Commands.AddTypeCommand

    Reply

Leave a Comment