none
AD abfragen nach user wo nur einer Gruppe angehören RRS feed

  • Frage

  • Hallo zusammen

    Ich habe folgende Problematik, ich soll alle user abfragen die nur und ausschliesslich nur DomänUser sind.

    Da ja jeder user eine Domänmember ist aber auch in anderen Gruppen vorhanden sein kann weiss ich nicht wie ich das in Powershell abfangen kann das mir nur die Domänuser angezeigt werden welche in keiner anderen Gruppe member sind.

    Kann mir jemand einen Tip geben wie ich das angehen kann?

    Bin was powershell angeht ein Neuling und blicke da noch nicht so ganz durch.

    Danke für euere Hilfe.

    Gruss

    Gerry

    Freitag, 26. Juli 2013 08:47

Antworten

  • Ungetestet:

    # Alle User mit * holen 
    Get-ADUser -Filter "*" | ForEach-Object {
        
        # Für jeden User eine Aktion ausführen
        # das Aktuelle Objekt (User) in der Pipeline kann mit $_ angesprochen werden!
    
        # Beispiel: Gruppen des User Expandieren, das memberof Property auslesen 
        # $Gruppen = $_ | Select-Object -ExpandProperty memberof
        
        # Testen ob der User weniger als 2 Gruppen hat
        If( @($_.memberof).Count -lt 2) {
            # Ausgabe erzeugen: User mit weniger als 2 Gruppen
            $_
        }  
    }

    Besser:

    Get-ADUser -Filter "*" | Where-Object { @($_.MemberOf).count -lt 2 }


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!



    • Bearbeitet Peter Kriegel Freitag, 26. Juli 2013 11:08 ccxxxc
    • Als Antwort markiert Gerry51 Freitag, 26. Juli 2013 12:47
    Freitag, 26. Juli 2013 11:04

Alle Antworten

  • Du hast in der PowerShell mehrere Möglichkeiten das Active Directory zu Managen.

    1. Die in PowerShell eingabauten .NET Klassen [ADSI] System.Directory.DirectoryEntry und [ADSISearcher] System.Directory.DirectorySearcher

    2. Das Active Directory Modul von Microsoft mit den AD Cmdlets (Befehlen)
    http://technet.microsoft.com/en-us/library/ee617195.aspx

    3. Das Active Directory Modul von der Firma Quest (jetzt DELL) mit den QAD Cmdlets (Befehlen)
    http://www.quest.com/powershell/activeroles-server.aspx

    Damit wir dir Punktgenau helfen können: Welche Technik nutzt du ?


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!

    Freitag, 26. Juli 2013 09:43
  • Ich nutze das Active Directory Modul von Microsoft, wobei ich bereits auf der MS seite war und das mir nicht wirklich weiter geholfen hat. Soweit ich bisher weiss kann man doch mit get-aduser alle user auslesen. Ich dachte mir das man eventuell anhängen kann "where" group-member only in "Domain-user", also in keine anderen Gruppe Mitglied ist, vielleicht stell ich mich ja auch nur etwas ungeschickt an.

    Ich habe versucht mit get-aduser filter samAccoutname -like "Domain Admin" mal alle user auszulesen, leider kommt nichts zurück, nicht einmal eine Fehlermeldung, bin wohl doch noch nicht soweit wie ich dachte.

    Danke für ein Feedback

    Gerry

     

    Freitag, 26. Juli 2013 10:19
  • Ungetestet:

    # Alle User mit * holen 
    Get-ADUser -Filter "*" | ForEach-Object {
        
        # Für jeden User eine Aktion ausführen
        # das Aktuelle Objekt (User) in der Pipeline kann mit $_ angesprochen werden!
    
        # Beispiel: Gruppen des User Expandieren, das memberof Property auslesen 
        # $Gruppen = $_ | Select-Object -ExpandProperty memberof
        
        # Testen ob der User weniger als 2 Gruppen hat
        If( @($_.memberof).Count -lt 2) {
            # Ausgabe erzeugen: User mit weniger als 2 Gruppen
            $_
        }  
    }

    Besser:

    Get-ADUser -Filter "*" | Where-Object { @($_.MemberOf).count -lt 2 }


    Please click “Mark as Answer” if my post answers your question and click “Vote As Helpful” if my Post helps you.
    Bitte markiere hilfreiche Beiträge von mir als “Als Hilfreich bewerten” und Beiträge die deine Frage ganz oder teilweise beantwortet haben als “Als Antwort markieren”.
    My PowerShell Blog http://www.admin-source.info
    [string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '
    German ? Come to German PowerShell Forum!



    • Bearbeitet Peter Kriegel Freitag, 26. Juli 2013 11:08 ccxxxc
    • Als Antwort markiert Gerry51 Freitag, 26. Juli 2013 12:47
    Freitag, 26. Juli 2013 11:04