none
Windows PowerShell - User einer Gruppe Auflisten mit allen Usern in Untergruppen RRS feed

  • Frage

  • Hallo zusammen,

    ich würde gerne wissen wie ich in der PowerShell alle Benutzer einer Gruppe sehen kann + falls sich darin weitere Gruppen befinden eine weitere Auflistung der Benutzer in den Untergruppen.

    Bisher bin ich soweit: 

    PS C:\WINDOWS\system32> Get-ADGroupMember "NAME" | Get-ADUser | select samaccountname >EXPORT.XX

    Das funktioniert auch soweit nur werden keine Untergruppen aufgelistet.

    Kennt jemand das Problem?

    Dienstag, 7. Juli 2015 15:11

Antworten

  • Hallo,

    das "Name" passt da nicht so hin.

    Get-ADGroupMember ABACUS | Where-Object {$_.ObjectClass -eq 'user'} | Get-ADUser -Properties DisplayName | Select-Object -ExpandProperty DisplayName | Out-File C:\AD-Test\Test.txt

    Wenn Du in der Textdatei auch die Uebrschrift displayname willst musst Du den Parameter -expandproperty weg lassen also so.

    Get-ADGroupMember ABACUS | Where-Object {$_.ObjectClass -eq 'user'} | Get-ADUser -Properties DisplayName | Select-Object DisplayName | Out-File C:\AD-Test\Test.txt

    Beste Gruesse
    brima

    • Als Antwort markiert Leon2675 Mittwoch, 8. Juli 2015 12:27
    Mittwoch, 8. Juli 2015 09:52
  • Hi,

    also jetzt ohne UI kannst Du das so machen. Ich denke Du solltest dich zuerst mal mit der PowerShell als solche befassen, und erst danach ueber eine UI nachdenken, sonst wird das auf einmal zu viel.

    $GroupName = Read-Host "Bitte geben sie den AD Gruppennamen ein"
    "Gruppe: $GroupName" | Out-File C:\AD-Test\Test.txt
    Get-ADGroupMember $GroupName | Where-Object {$_.ObjectClass -eq 'user'} | Get-ADUser -Properties DisplayName | Select-Object -ExpandProperty DisplayName | Out-File C:\AD-Test\Test.txt -Append
    
    

    Beste Gruesse
    brima

    • Als Antwort markiert Leon2675 Mittwoch, 8. Juli 2015 12:55
    Mittwoch, 8. Juli 2015 12:45
  • Hallo,

    also in dem Beispiel ist der Gruppenname ja ABACUS. Wo willst du den Namen haben? Soll der auch in der Textdatei stehen, oder soll die Textdatei wie die Gruppe lauten, oder ...?

    Und lies mal noch diesen Forenbeitrag: Click

    Beste Gruesse
    brima

    • Als Antwort markiert Leon2675 Mittwoch, 8. Juli 2015 12:27
    Mittwoch, 8. Juli 2015 11:47

Alle Antworten

  • Hallo,

    du musst bei Get-ADGroupmember auch noch den Parameter Recurse angeben.

    https://technet.microsoft.com/en-us/library/ee617193.aspx?f=255&MSPPError=-2147217396

    Beste Gruesse
    brima

    Dienstag, 7. Juli 2015 16:08
  • Hey,

    das funktioniert nun so weit. Wenn ich jetzt aber eine Gruppe durchsuche ohne "recursiv" schmeißt er Fehlermeldungen wenn dort noch untergruppen drinne sind. Kann man diese Fehlermeldungen irgendwie abfangen und einen Text ausgeben?

    Mittwoch, 8. Juli 2015 07:27
  • Hallo,

    das posten der Fehlermeldung waere dann doch sehr hilfreich gewesen, so kann man nur spekulieren. 

    Es liegt aber vermutlich daran, das Get-ADGroupmember ohne recursiv Gruppen und User Objekte liefert, du aber hinter dem Pipe mit Get-Aduser weiter arbeitest, und dieser kann natuerlich mit den Gruppen nichts anfangen, weil er so User mit dem Namen such, die es aber nicht gibt.

    Somit musst Du filtern

    Get-ADGroupMember ABACUS | Where-Object {$_.ObjectClass -eq 'user'} | .......

    Beste Gruesse
    brima

    Mittwoch, 8. Juli 2015 07:47
  • Danke für die schnelle Hilfe, ja das habe ich mir auch gedacht.

    Get-ADGroupMember ABACUS | Where-Object {$_.ObjectClass -eq 'user'}  "NAME"|

    Get-ADUser -Properties displayName | select displayName | select displayName

    >C:\AD-Test\Test.txt


    Where-Object : Es wurde kein Positionsparameter gefunden, der das Argument
    "NAME" akzeptiert.
    In Zeile:1 Zeichen:28
    + Get-ADGroupMember ABACUS | Where-Object {$_.ObjectClass -eq 'user'}  "CN=sicHMWK ...
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo          : InvalidArgument: (:) [Where-Object], ParameterBindingException
        + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.WhereObjectCommand

    Das ist mein jetztiger Code, habe ich den Tipp richtig angewendet?

    Könntest du mir den Fehlercode erklären?


    • Bearbeitet Leon2675 Mittwoch, 8. Juli 2015 09:02
    Mittwoch, 8. Juli 2015 09:00
  • Hallo,

    das "Name" passt da nicht so hin.

    Get-ADGroupMember ABACUS | Where-Object {$_.ObjectClass -eq 'user'} | Get-ADUser -Properties DisplayName | Select-Object -ExpandProperty DisplayName | Out-File C:\AD-Test\Test.txt

    Wenn Du in der Textdatei auch die Uebrschrift displayname willst musst Du den Parameter -expandproperty weg lassen also so.

    Get-ADGroupMember ABACUS | Where-Object {$_.ObjectClass -eq 'user'} | Get-ADUser -Properties DisplayName | Select-Object DisplayName | Out-File C:\AD-Test\Test.txt

    Beste Gruesse
    brima

    • Als Antwort markiert Leon2675 Mittwoch, 8. Juli 2015 12:27
    Mittwoch, 8. Juli 2015 09:52
  • Hallo,

    das "Name" passt da nicht so hin.

    Get-ADGroupMember ABACUS | Where-Object {$_.ObjectClass -eq 'user'} | Get-ADUser -Properties DisplayName | Select-Object -ExpandProperty DisplayName | Out-File C:\AD-Test\Test.txt

    Wenn Du in der Textdatei auch die Uebrschrift displayname willst musst Du den Parameter -expandproperty weg lassen also so.

    Get-ADGroupMember ABACUS | Where-Object {$_.ObjectClass -eq 'user'} | Get-ADUser -Properties DisplayName | Select-Object DisplayName | Out-File C:\AD-Test\Test.txt

    Beste Gruesse
    brima


    Hey echt cool dass du mir so hilfst, und wo soll ich den Namen der Gruppe dann angeben? :S
    Mittwoch, 8. Juli 2015 11:34
  • Hallo,

    also in dem Beispiel ist der Gruppenname ja ABACUS. Wo willst du den Namen haben? Soll der auch in der Textdatei stehen, oder soll die Textdatei wie die Gruppe lauten, oder ...?

    Und lies mal noch diesen Forenbeitrag: Click

    Beste Gruesse
    brima

    • Als Antwort markiert Leon2675 Mittwoch, 8. Juli 2015 12:27
    Mittwoch, 8. Juli 2015 11:47
  • Hallo,

    also in dem Beispiel ist der Gruppenname ja ABACUS. Wo willst du den Namen haben? Soll der auch in der Textdatei stehen, oder soll die Textdatei wie die Gruppe lauten, oder ...?

    Und lies mal noch diesen Forenbeitrag: Click

    Beste Gruesse
    brima

    Der Gruppenname sollte in der Textdatei oben stehen. Wie gehe ich in PowerShell mit Variablen um? Also mein Ziel ist es ein kleines Tool zu schreiben welches einen über eine GUI auffordert eine Gruppe einzugeben, dann den Namen automatisch einsetzt.

    Kennst du dafür vielleicht eine gute Anleitung? Sorry, es ist das erste mal dass ich versuche etwas in PowerShell zu scripten :D

    Mittwoch, 8. Juli 2015 12:30
  • Hi,

    also jetzt ohne UI kannst Du das so machen. Ich denke Du solltest dich zuerst mal mit der PowerShell als solche befassen, und erst danach ueber eine UI nachdenken, sonst wird das auf einmal zu viel.

    $GroupName = Read-Host "Bitte geben sie den AD Gruppennamen ein"
    "Gruppe: $GroupName" | Out-File C:\AD-Test\Test.txt
    Get-ADGroupMember $GroupName | Where-Object {$_.ObjectClass -eq 'user'} | Get-ADUser -Properties DisplayName | Select-Object -ExpandProperty DisplayName | Out-File C:\AD-Test\Test.txt -Append
    
    

    Beste Gruesse
    brima

    • Als Antwort markiert Leon2675 Mittwoch, 8. Juli 2015 12:55
    Mittwoch, 8. Juli 2015 12:45
  • Inwiefern ist das eine Antwort ? Die Untergruppen zeigt dieses Beispiel an bzw loest dieses Beispiel auch nicht auf ?
    Montag, 23. Juli 2018 10:58
  • Hallo,

    was ist denn Dein eigentliches Problem? Auf welche der als Lösung markierten Antworten bezieht sich denn Deine Frage?

    Meistens ist es keine gute Idee, einen alten, bereits als gelöst markierten Thread wieder zu reaktivieren. Vielleicht erstelltst Du einfach selbst eine neue Frage und beziehst Dich im Zweifel einfach auf diese ältere Diskussion.

    BTW: netter Nickname - Gott sei Dank, muss man den selten eintippen. ;-)


    Best regards,

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


    • Bearbeitet BOfH-666 Montag, 23. Juli 2018 11:27
    Montag, 23. Juli 2018 11:26