none
Beenden aller AD-Gruppenmitgliedschaften mit einem Powershell-Skript RRS feed

  • Frage

  • Hallo,

    mein Plan ist es, bei einer Datenbank-basierten Aktualisierung aller Benutzerkonten einer Berufsschule alle Gruppenzugehörigkeiten zu löschen und danach neu zu vergeben. Folgende Variante des Löschens funktioniert:

    (Get-ADUser $username -properties memberof).memberof | Remove-ADGroupMember -Members $username -Confirm:$true

    Durch die Vielzahl der Benutzer und der Aktualisierungszyklen am Anfang des Schuljahres, ist eine manuelle Bestätigung aber nicht praktikabel:

    (Get-ADUser $username -properties memberof).memberof | Remove-ADGroupMember -Members $username -Confirm:$false

    Remove-ADGroupMember : "System.String" kann nicht in den Typ "System.Management.Automation.SwitchParameter" konvertiert werden, der
    für den Parameter "Confirm" erforderlich ist.
    In C:\Users\a\Documents\existing-sus2ad_krueg_V001.ps1:127 Zeichen:115
    + ... ).memberof | Remove-ADGroupMember -Members $username -Confirm:$false
    +                                                                   ~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Remove-ADGroupMember], ParameterBindingException
        + FullyQualifiedErrorId : CannotConvertArgument,Microsoft.ActiveDirectory.Management.Commands.RemoveADGroupMember

    Die Online-Doku war mir keine wirkliche Hilfe in dem Fall. Auch die hier im Forum vorhandene Variante zum Thema funktionierte bei mir nur mit manueller Bestätigung. Kann mir jemand einen Tipp geben?


    • Bearbeitet krueuw Dienstag, 20. August 2019 12:51
    Dienstag, 20. August 2019 12:49

Antworten

Alle Antworten

  • Moin,

    Tipp: Foreach-Object verwenden.


    Evgenij Smirnov

    http://evgenij.smirnov.de

    Dienstag, 20. August 2019 14:00
  • Hallo, was passiert den wenn du den Teil "-Confirm:$false" einfach weglässt?

    Normalerweiße ist der Teil optional.

    Donnerstag, 22. August 2019 07:35
  • Hallo, was passiert den wenn du den Teil "-Confirm:$false" einfach weglässt?

    Bei löschenden oder ändernden Cmdlets passiert dann bei jedem Durchlauf eine interaktive Rückfrage an den User.

    Evgenij Smirnov

    http://evgenij.smirnov.de

    Donnerstag, 22. August 2019 08:50
  • Irgendwas ist da komisch... Laut Doku MS: "To bypass prompting for confirmation before removal, you can specify -Confirm:$False when using this cmdlet."

    Aber warum behauptet die Fehlermeldung, daß $False ein String sei? Wenn ich $False einer Variablen zuweise, dann ist die hinterher Boolean, nicht String?!?


    Greetings/Grüße, Martin - https://mvp.microsoft.com/en-us/PublicProfile/5000017 Mal ein gutes Buch über GPOs lesen? - http://www.amazon.de/Windows-Server-2012--8-Gruppenrichtlinien/dp/3866456956 Good or bad GPOs? My blog - http://evilgpo.blogspot.com And if IT bothers me? Coke bottle design refreshment - http://sdrv.ms/14t35cq

    Donnerstag, 22. August 2019 09:19