none
Mitgliedschaften von Usern auslesen und entfernen

    Frage

  • Hallo zusammen,

    ich würde gerne von Usern deren Mitgliedschaften (Mitglied von) auslesen und dann entfernen lassen.

    Wie bekomme ich das am besten hin?

    Vielen Dank im Voraus!

    Mittwoch, 11. April 2018 13:43

Alle Antworten

  • Hallo Oesi1989,

    schau dir mal in PowerShell "Get-ADUser & Get-ADGroupMember sowie Remove-ADGroupMember an"

    Mittwoch, 11. April 2018 13:50
  • Hallo, habe auch schon gemacht. Hier mein Skript:

    Import-Module ActiveDirectory
    $path = "C:\users\11470762\desktop\test.csv"
    
    #alle Nutzer der OU "deakt_User" auslesen
    $allusers = Get-ADUser -Filter * -Properties groupmembershipsam,primarygroupid | where-object {$_.distinguishedname -like "*,OU=Test,*"}
    foreach($users in $allusers)
    {
            $groupmember = get-adgroupmember -identity $users|Select-Object member | foreach-object
           {
              $_.member = $users
              Remove-ADGroupMember $_.member
            }| Export-CSV $path -Append -NoTypeInformation -Encoding UTF8
    }


    wie kann ich jetzt in der Schleife die Mitgliedsgruppen auflisten lassen?

    • Bearbeitet Oesi1989 Donnerstag, 12. April 2018 08:10
    Mittwoch, 11. April 2018 14:27
  • Es gibt wie immer mehrere Möglichkeiten.

    Da wäre bspw. noch "Get-ADPrincipalGroupMembership" oder auch das Property memberOf von Get-ADUser

    Mittwoch, 11. April 2018 14:52
  • Oesi1989,

    könntest Du bitte in Zukunft Deinen Code hier im Forum auch als Code formatieren? Das macht uns allen das Leben etwas leichter. Wenn ich Deine Anfrage oben mal GANZ GENAU nehme, sollte das Folgende eigentlich genügen (jedenfalls als ein Anfang):

    Get-ADUser -Filter * -SearchBase '<hier solltest Du eine Start-OU in Deiner Domäne angeben>' -Properties MemberOf |
        ForEach-Object {
            Remove-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf $_.MemberOf
        }
    
    Was möchtest Du denn in Deiner CSV-Datei eigentlich "einsammeln"?



    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Mittwoch, 11. April 2018 14:52
  • Hallo, vielen Dank.
    Ich habe folgendes Script noch gefunden und angepasst:


    Import-Module ActiveDirectory

    $user = Get-ADUser -Filter *  -Properties MemberOf | where-object {$_.distinguishedname -like "*,OU=Test,*"}
    $membership=$user.memberof
    foreach ($g in $membership)
    {
        Remove-ADGroupMember -Identity $g -Members $user.distinguishedName}

    Problem ist, dass er immer nachfragt, ob ich die Aktion wirklich ausführen möchte.
    Wie kann ich das umgehen?

    Die CSV-Datei ist eigentlich nur so. Die brauch ich nicht.


    • Bearbeitet Oesi1989 Donnerstag, 12. April 2018 08:03
    Donnerstag, 12. April 2018 07:51
  • Das Zauberwort ist:

    "-Confirm:$false"


    Donnerstag, 12. April 2018 08:23
  • Danke, habe ich gerade gefunden.

    Jetzt möchte ich noch die Domänen-Benutzer als Primäre Gruppe setzen, falls sie es noch nicht sein sollten.
    Dies habe ich so eingebaut, geht aber leider nicht.

    Import-Module ActiveDirectory
    
    $user = Get-ADUser -Filter *  -Properties primarygroupid,MemberOf | where-object {$_.distinguishedname -like "*,OU=Test,*"}
    
    $membership = $user.MemberOf
    foreach ($g in $membership) 
    {
         # Domänen-Benutzer als primäre Gruppe setzen
         if(get-aduser primarygroupid -eq "513") {  } else{ set-aduser primarygroupid = "513" }
    
            Remove-ADGroupMember -Identity $g -Members $user.distinguishedName -Confirm:$false
    }
    Ich verstehe das aber noch nicht genau mit der if-Abfrage, wie ich das vergleichen und setzen kann.

    Donnerstag, 12. April 2018 08:53
  • Hallo Oesi1989,

    ohne dir zu nahe treten zu wollen, ich würde dir empfehlen ein paar Grundkenntnisse über PowerShell anzueignen bevor du mit Befehlen handhabst die Attribute/Gruppen bzw. allgemein ActiveDirectory Objekte veränderen. Ich hoffe gerade du arbeitest in einer Testumgebung.

    Viele hier können dir das Skript was du brauchst vermutlich in Minuten schreiben, wichtiger wäre es aber du verstehst es und führst es nicht nur aus.

    Daher auch mein nächster Tipp und kein fertiger Code:

    Überprüfe mal die Identity bei Get & Set-ADUser.

    Donnerstag, 12. April 2018 09:23
  • Oesi,

    da kann ich dem Patrick nur beipflichten. Bitte nicht in einer Produktiv-Umgebung testen, wenn Du nicht genau weißt, was Du tust.

    Hast Du Dir mein Script mal angesehen?

    Normalerweise ist in einer Domäne die Gruppe der Domänen-Benutzer die primäre Gruppe. Diese lässt sich sowieso nicht mit Standard-Mitteln entfernen. Mein Script würde also - ergänzt um das -Confirm:$false - alle Gruppen AUSSER der primären Gruppe - die Domänen-Benutzer - entfernen.


    Best regards,

    (79,108,97,102|%{[char]$_})-join''


    • Bearbeitet BOfH_666 Donnerstag, 12. April 2018 09:38
    Donnerstag, 12. April 2018 09:37
  • Hallo,
    ich teste natürlich in einer Testumgebung.

    Das Script zum entfernen der Mitgliedergruppen geht ja auch.
    Nur jetzt soll ich vorher prüfen, ob die primarygroupid die 513 ist für die Domänen-Benutzer
    Wenn nicht, dann soll er die 513 als ID setzen und dann löschen

    Donnerstag, 12. April 2018 11:32
  • Na die Prüfung auf die 513 ist ja dann überflüssig, wenn Du sie sowieso setzen sollst. Dann kannst Du sie auch gleich einfach für alle setzen.
    Get-ADUser -Filter * -SearchBase '<hier solltest Du eine Start-OU in Deiner Domäne angeben>' -Properties MemberOf | 
        ForEach-Object {
            Set-ADUser -Identity $_.SamAccountName -Replace @{PrimaryGroupID="513"} 
            Remove-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf $_.MemberOf -Confirm:$false
        }

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 12. April 2018 12:33
  • Ja, habe ich genauso gemacht, weil das mit den Variablen nicht funktioniert hat.

    Jetzt soll ich aber für die Parameter Werte eingeben?!?

    Donnerstag, 12. April 2018 13:38
  • Da das Skript von BOfH auf deine Eingangsfrage abzielt, gibt es hier lediglich eine Variable.

    Und das ist die OU aus der du die Benutzer abfragst. Für was genau sollst du denn nun Parameter eingeben?

    Donnerstag, 12. April 2018 14:20
  • Jetzt soll ich aber für die Parameter Werte eingeben?!?

    ??  ...  machst Du hier Hausaufgaben, oder warum hab ich den Eindruck, dass die Vorgaben ständig neu ausgewürfelt werden!?

    Wie wäre es, wenn Du nochmal eine kleinen Schritt zurück machst und Dir erst mal die Grundlagen von Powershell draufschaffst. Das geht zur Not auch ganz kostenlos z.B. mit einem Video-Kurs in der Microsoft Virtual Academy: Getting Started With Microsoft Powershell. Das würde Dich wenigstens mit den wichtigsten Grundlagen ausstatten, sodass Du hier keine Baby-Fragen stellen musst.  ;-)  :-D


    Best regards,

    (79,108,97,102|%{[char]$_})-join''


    • Bearbeitet BOfH_666 Donnerstag, 12. April 2018 14:38
    Donnerstag, 12. April 2018 14:37
  • Das folgende Skript funktioniert jetzt soweit.

    Import-Module ActiveDirectory
    
    Get-ADUser -Filter * -SearchBase "OU=Test, etc" -Properties SamAccountName,PrimaryGroupID,MemberOf | ForEach-Object{
        Set-ADUser -Identity $_.SamAccountName -replace @{PrimaryGroupID="513"}
        $user = Get-ADUser -Filter * -SearchBase "OU=Test,OU=_aussortieren,OU=01_Benutzer_Gruppen,DC=bwkrhs,DC=kob,DC=zsanbw,DC=de" -Properties SamAccountName,PrimaryGroupID,MemberOf
        $membership = $user.MemberOf
        foreach($g in $membership) {
            Remove-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf $user.MemberOf -Confirm:$false -ErrorAction Ignore -WarningAction Ignore -InformationAction Ignore
         }
    }

    Es kommt aber noch eine Meldung, das mindestens ein Mitglied aus der ADGroup (Domänen-Benutzer) nicht entfernt werden konnte. Ist ja auch klar, ist ja die primäre Gruppe. WIe kann man das jetzt noch mitprüfen?

    Das ist der Fehlercode:

    Remove-ADPrincipalGroupMembership : Aus mindestens einer ADGroup konnten keine Mitglieder entfernt werden.
    In C:\Users\11470762\Desktop\User Mitgliedschaften entfernen und primäre Gruppe setzen.ps1:11 Zeichen:9
    +         Remove-ADPrincipalGroupMembership -Identity $_.SamAccountName ...
    +         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : OperationStopped: (Microsoft.Activ...ement.ADGroup[]:ADGroup[]) [Remove-ADPrincipalGroupMembership], ADException
        + FullyQualifiedErrorId : 1,Microsoft.ActiveDirectory.Management.Commands.RemoveADPrincipalGroupMembership



    • Bearbeitet Oesi1989 Donnerstag, 12. April 2018 14:59
    Donnerstag, 12. April 2018 14:58
  • Du könntest entweder vor dem Löschen, die entsprechende Gruppe aus der Variable entfernen (herausfiltern) - was die professionellere/elegantere/coolere/erwachsenere Lösung wäre -  oder Du ingorierst einfach alle Fehler mit dem Common Parameter -ErrorAction SilentlyContinue.

    Best regards,

    (79,108,97,102|%{[char]$_})-join''


    • Bearbeitet BOfH_666 Donnerstag, 12. April 2018 18:46
    Donnerstag, 12. April 2018 15:17
  • Ich habe den Common Parameter -ErrorAction SilentlyContinue oder Ignore benutzt.
    Es funktioniert zwar, aber trotzdem kommt die Meldung.

    Wie kann man denn die Gruppe aus der Variable löschen?

    • Bearbeitet Oesi1989 Montag, 16. April 2018 07:20
    Montag, 16. April 2018 06:54
  • Wie kann man denn die Gruppe aus der Variable löschen?

    Da in Powershell Arrays nicht "variabel" sind, musst Du das Array, was in der Variable existiert, durch ein neues ersetzen, bei dem Du die gewünschte Gruppe bei der Erstellung herausfilterst. Pseudo-Code:

    $NewVar = <alle Gruppenmitgliedschaften Array> |
        Where-Object  <alle, die nicht "gesuchte Gruppe" sind>



    Best regards,

    (79,108,97,102|%{[char]$_})-join''


    • Bearbeitet BOfH_666 Montag, 16. April 2018 08:07
    Montag, 16. April 2018 08:06
  • Das Script funktioniert soweit, die o.g. Fehlermeldung kommt trotzdem noch.
    Nur wie kann ich jetzt prüfen, ob die Gruppe "Domänen-Benutzer" im Array vorhanden ist?
    Weil laut dieser Seite (https://www.faq-o-matic.net/2015/02/18/die-primary-group-in-active-directory/) wird diese Gruppe ja nicht unter MemberOf gespeichert wird, sondern in der "PrimaryGroupID".

     $user = Get-ADUser -Filter * -SearchBase "OU=Test..." -Properties SamAccountName,PrimaryGroupID,MemberOf,DistinguishedName
            $membership = $user.MemberOf
            ForEach($g in $membership)
            {
                "$g"
                if($g -ilike "OU=Domänen-Benutzer")
                {
                   "Nutzer ist in der Gruppe Domänen-Benutzer"
                }
                else
                {
                   #Remove-ADGroupMember -Identity $g -Members $_.DistinguishedName -Confirm:$false #-ErrorAction SilentlyContinue -WarningAction Ignore -InformationAction Ignore
                }
            }

    Also in $g sind alle Gruppen einzeln drin, nur leider nicht die Gruppe "Domänen-Benutzer"
    Wie kann ich dies prüfen?


    • Bearbeitet Oesi1989 Dienstag, 17. April 2018 09:27
    Dienstag, 17. April 2018 09:26
  • Hallo Oesi1989,

    nicht drin, ist etwas falsch. Die Gruppe ist dann nicht enthalten, wenn sie gleichzeitig die PrimaryGroup des Benutzers ist.

    Du hast doch den Artikel sogar verlinkt, indem es erklärt wird.

    Vermutlich brauchst du für das Ergebnis das du möchtest, einfach eine andere bzw. zusätzliche Klausel in deiner IF-Abfrage die bspw. noch die PrimaryGroupID (welche du ja bereits abfragst und im $user Objekt hast) auf "513" prüft.

    Edit: Aktuell sieht übrigens dein Skript (bzw. was ich denke das es am Ende bewirken soll) genau so aus, was BOfH schon am 12. gepostet hat.

    "Alle Gruppen entfernen außer Domänen-Benutzer und Domänen-Benutzer als PrimaryGroup setzen"


    Dienstag, 17. April 2018 09:52
  • Ja, aber wie kann ich denn die if-Abfrage bauen?
    Oder wie lässt sich die Möglichkeit realisieren, dass ich die gesuchte Gruppe aus dem vorherigen Beitrag rausfilter?
    Dienstag, 17. April 2018 10:28
  • Siehe BOfHs Post vom 16. und angewendet auf dein $membership

    $membership = $user.MemberOf | Where-Object {$_ -notlike "*Domänen-Benutzer*"}


    Dienstag, 17. April 2018 11:04
  • Super, vielen Dank.
    Findet der DC auf einem englischen Server auch die Gruppe "Domänen-Benutzer" aufgrund des Umlautes?

    Dienstag, 17. April 2018 13:07
  • Selbstverständlich nicht.
    Dort heißt sie "Domain Users".

    Edit:

    Achso ... nee Moment ... es kommt drauf an, ob Du eine Englische Domäne hast oder eine Deutsche. Die Sprache des Servers sollte dabei keine Rolle spielen.


    Best regards,

    (79,108,97,102|%{[char]$_})-join''



    • Bearbeitet BOfH_666 Dienstag, 17. April 2018 13:15
    Dienstag, 17. April 2018 13:12
  • Okay danke, also der Server ist englisch, Domäne ist aber deutsch
    Dienstag, 17. April 2018 13:26
  • Im Zweifel immer: TESTEN!  ;-)

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Dienstag, 17. April 2018 13:39
  • Get-ADUser -Filter * -SearchBase $userou -Properties SamAccountName,PrimaryGroupID,MemberOf | ForEach-Object{
        #Prüfen, ob die PrimaryGroupID die 513 hat
        #"$_"
         
        $user = Get-ADUser -Filter * -SearchBase $userou -Properties SamAccountName,PrimaryGroupID,MemberOf,DistinguishedName
        $membership = $user.MemberOf | Where-Object {$_ -notlike "Domänen-Benutzer"}
        #"$membership" 
        #"$user.MemberOf"
    
        if($user.PrimaryGroupID -ilike "513")
        {
            #$user = Get-ADUser -Filter * -SearchBase $userou -Properties SamAccountName,PrimaryGroupID,MemberOf,DistinguishedName
            #$membership = $user.MemberOf | Where-Object {$_ -notlike "Domänen-Benutzer"}
            ForEach($g in $membership)
            {
                #Mitgliedergruppen entfernen
                Remove-ADGroupMember -Identity $g -Members $user.DistinguishedName -Confirm:$false -ErrorAction SilentlyContinue -WarningAction SilentlyContinue -InformationAction SilentlyContinue
            }
        }

    Es kommt immer noch die Fehlermeldung:

    Remove-ADGroupMember : Der Benutzer kann nicht aus dieser Gruppe entfernt werden, da die Gruppe momentan die primäre Gruppe des Benutzers ist
    In C:\Users\11470762\Desktop\User Mitgliedschaften entfernen und primäre Gruppe setzen.ps1:20 Zeichen:13
    +             Remove-ADGroupMember -Identity $g -Members $_.Distinguish ...


    Ich weiß aber nicht, wo in dieser Zeile der Fehler sein könnte?!?
    Ich habe jetzt auch mal die Abfrage  und das mit dem Array vor die if-Abfrage gepackt.
    Das Script funktioniert zwar, aber er durchläuft einen Nutzer ein Paar mal und das dauert einfach Ewigkeiten...



    • Bearbeitet Oesi1989 Dienstag, 17. April 2018 14:39
    Dienstag, 17. April 2018 14:36
  • Hat evtl. jmd noch einen Vorschlag?
    Donnerstag, 19. April 2018 08:03
  • Um herauszubekommen, bei welcher Gruppe die Fehlermeldung erscheint, könntest Du eine Schleife bauen, die die jeweils bearbeitete Gruppe anzeigt und auf Bestätigung zum Entfernen wartet. Dann weißt Du wenigstens wo's klemmt.

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 19. April 2018 08:18
  • Ich hab mir Deinen Code nochmal angeguckt und nachgestellt. Die Lösung ist  eigentlich ganz einfach ... und mit ein bissl "Forschung" hättest Du auch selbst drauf kommen können - anders machen wir das auch nicht. ;-)
    Get-ADUser -Filter * -SearchBase $userou -Properties MemberOf | 
        ForEach-Object {
        Set-ADUser -Identity $_.SamAccountName -Replace @{PrimaryGroupID = "513"} 
        $USer = Get-ADUser -Identity $_.sAMAccountName -Properties MemberOf
        $GroupList = $User.MemberOf | Where-Object {$_ -notlike "Domänen-Benutzer"}
        Remove-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf $GroupList -Confirm:$false
    }
    
    Das funktioniert bei mir ohne jegliche Fehlermeldung oder Nachfrage.

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 19. April 2018 08:43
  • Hallo, vielen Dank erstmal.
    ich habe es jetzt genauso kopiert zum testen, aber er sagt immer:

    Das Argument für den Parameter "MemberOf" kann nicht überprüft werden. Das Argument ist NULL oder leer.
    Donnerstag, 19. April 2018 12:38
  • Dann bau doch zwischendurch einfach mal ein Write-Debug, Write-Verbose oder Write-Information ein. Oder zur Not zum testen kurz ein Write-Host und lass Dir ausgeben, was die einzelnen Variablen als Inhalt haben.


    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 19. April 2018 13:00
  • Bei mir tut es das.

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Donnerstag, 19. April 2018 13:19
  • Ja, aber man kann nicht sagen, dass das Script oben genauso wie es da steht funktioniert, obwohl es das gar nicht tut!!!

    Oesi, das Skript funktioniert bei mir auch. Außerdem ist es kein Grund hier mit "!!!" zu antworten. Wir helfen dir hier in unserer Freizeit weiter. Da kann man auch ein wenig Mitarbeit verlangen und vor allem eine normale Umgangssprache.

    Also, Debugge das ganze und schau dir die Werte der Variablen an.

    Donnerstag, 19. April 2018 17:50
  • Ja entschuldigung.
    Also in $Grouplist sind Gruppen vorhanden und bei $_.SamAccountName sind auch die richtigen Nutzer vorhanden.
    Er sagt noch immer die gleiche Meldung, das das Argument für den Parameter -MemberOf nicht überprüft werden kann.
    Freitag, 20. April 2018 08:27
  • Im Zweifel wäre vielleicht der komplette Text der Fehlermeldung hilfreich.
    Womit und wie testest Du das? Test-Accounts in einer Test-OU und einer Test-Domäne auf einem Test-Server? Welchen Domänen-Level hast Du? Remote oder lokal?


    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Freitag, 20. April 2018 08:35
  • Es sind Test-User in einer Test OU in einer Live Domäne
    Remove-ADPrincipalGroupMembership : Das Argument für den Parameter "MemberOf" kann nicht überprüft werden. Das Argument ist NULL oder leer. Geben Sie ein Argument an, das nicht NULL oder 
    leer ist, und führen Sie den Befehl erneut aus.
    In Zeile:11 Zeichen:77
    + ... upMembership -Identity $_.SamAccountName -MemberOf $GroupList -Confir ...
    +                                                        ~~~~~~~~~~
        + CategoryInfo          : InvalidData: (:) [Remove-ADPrincipalGroupMembership], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.RemoveADPrincipalGroupMembership
     
    Remove-ADPrincipalGroupMembership : Das Argument für den Parameter "MemberOf" kann nicht überprüft werden. Das Argument ist NULL oder leer. Geben Sie ein Argument an, das nicht NULL oder 
    leer ist, und führen Sie den Befehl erneut aus.
    In Zeile:11 Zeichen:77
    + ... upMembership -Identity $_.SamAccountName -MemberOf $GroupList -Confir ...
    +                                                        ~~~~~~~~~~
        + CategoryInfo          : InvalidData: (:) [Remove-ADPrincipalGroupMembership], ParameterBindingValidationException
        + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.RemoveADPrincipalGroupMembership
    Also das Skript funktioniert zwar, er entfernt auch alle Mitgliedsgruppen, trotzdem kommt die Meldung. Kann das mit den "Domänen-Benutzer" zusammenhängen?

    • Bearbeitet Oesi1989 Freitag, 20. April 2018 08:46
    Freitag, 20. April 2018 08:42
  • Kommt die Meldung bei jedem Account? Wie viele Accounts zum Testen benutzt Du? Die Fehlermeldung moniert die Zeile 11. Bei meinem Beispiel oben sind es nur 7 Zeilen.
    Du machst es uns wirklich nicht leicht.

    Ich würde im Moment davon ausgehen, dass Du einen Account bei Deinen Test-Accounts dabei hast, der schon keine weiteren Gruppen ausser der Domänen-Benutzer-Gruppe mehr hat.


    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Freitag, 20. April 2018 08:55
  • Wenn ein Benutzer nur in der Gruppe Domänen-Benutzer und in sonst keiner enthalten ist, ist die Variable $GroupList eben $null. Einfach eine Abfrage einbauen, nach der Remove-ADPrincipalGroupMembership nur dann ausgeführt wird, wenn $GroupList tatsächlich Gruppen enthält.
    Freitag, 20. April 2018 10:25
  • Import-Module ActiveDirectory
    
    $userou = "OU=Test,..."
    
    Get-ADUser -Filter * -SearchBase $userou -Properties MemberOf | ForEach-Object {
        Set-ADUser -Identity $_.SamAccountName -Replace @{PrimaryGroupID = "513"}
    
        $USer = Get-ADUser -Identity $_.SamAccountName -Properties MemberOf
        $GroupList = $User.MemberOf | Where-Object {$_ -notlike "Domänen-Benutzer"}
        Remove-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf $GroupList -Confirm:$false
    }
    Deswegen 11 Zeilen.
    Aber wenn nur noch die Gruppe "Domänen-Benutzer" aufgeführt wird, dann müsste die Meldung doch bei euch auch auftauchen.

    Ist diese Abfrage richtig?
    if(!$GroupList){   }
        else { Remove-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf $GroupList -Confirm:$false }


    • Bearbeitet Oesi1989 Freitag, 20. April 2018 10:42
    Freitag, 20. April 2018 10:38
  • Bei mir taucht die Fehlermeldung auch auf, wenn ein Benutzer nur in Domain Users enthalten ist (bei mir in englischem AD-Forest, wenn Domain Users die primäre Gruppe ist macht das keinen Unterschied, weil die primäre Gruppe in MemberOf ohnehin nicht enthalten ist).

    Im Prinzip ist deine Abfrage so richtig, wäre aber vielleicht einfacher in dieser Variante:

    if ($GroupList)
    {
        Remove-ADPrincipalGroupMembership -Identity $_.SamAccountName -MemberOf $GroupList -Confirm:$false
    }
    

    Freitag, 20. April 2018 10:58
  • Wenn Du nicht gerade eine veraltete Powershell 2 Version einsetzt, kannst Du die Zeile mit dem Import-Module weglassen. Das macht die Powershell schon lange automatisch für Dich. ;-) Besser wäre an der Stelle eher das Schlüsselwort #Requires mit entsprechenden Angaben. Das verhindert im Zweifelsfall, dass Dein Script losrennt, obwohl die nötigen Voraussetzungen auf dem System gar nicht vorliegen.

    ... und da unsere Monitore heutzutage alle eher in der Breite statt in der Höhe wachsen, finde ich zu viele unnötige Leerzeilen eher störend als hilfreich (das mag der ein oder andere aber natürlich gern anders ehen  :-)  )


    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Freitag, 20. April 2018 11:54
  • Ja okay, danke, weiß ich Bescheid.

    Mit welchen Befehlen kann ich den Besitzer eines Ordners ändern?
    Montag, 23. April 2018 08:54
  • Mit welchen Befehlen kann ich den Besitzer eines Ordners ändern?
    Für ein neues Thema, machst Du bitte einen neuen Thread auf.  Und Du darfst auch gern für einfache Fragen mal eine Suchmaschine benutzen - das machen wir auch als Erstes, wenn wir nicht weiter wissen.  ;-)

    Best regards,

    (79,108,97,102|%{[char]$_})-join''

    Montag, 23. April 2018 09:00
  • > Du darfst auch gern für einfache Fragen mal eine Suchmaschine benutzen

    https://lmgtfy.com/?q=change+owner+of+folder+windows

    :-))

    Montag, 23. April 2018 10:05