none
liste alle user mit feld mail RRS feed

  • Frage

  • ich suchen einen powershell befehl der mir alle user auflistet und auch das feld mail (also nicht exchange proxyaddresses) sondern das NT Attribute "mail" und eventl. mailnickname und displayname

    was passiert mit denen wo das attribut nicht vorhanden ist da kein Wert gesetzt ist? Die wäre natürlich ganz wichtig, dass diese als Displayname dabei sind.

    danke

     


    Chris

    Freitag, 1. Juli 2011 09:46

Antworten

  • Das geht z.b. so:

    $ADsearcher = New-Object System.DirectoryServices.DirectorySearcher 
    $ADsearcher.Filter = "(objectCategory=person)"
    $allusers = $ADsearcher.findall()
    
    foreach ($user in $allusers) {
      write-host $user.properties.samaccountname "," $user.properties.displayname "," $user.properties.mail "," $user.Properties.mailnickname
    }
    

    Das Script benutzt ein DirectoySearcher-Objekt und filtert alle Userobjekte aus der aktuellen Domäne und listet die gewünschten Attribute.

    Lies auch bitte mal diesen Post.

    Grüße, Denniver


    http://bytecookie.wordpress.com/
    Freitag, 1. Juli 2011 13:15
    Moderator
  • Du kannst dir auch die ActiveRoles Management Shell von Quest installiert, dann geht's einfacher.

    Get-QADUser | ft DisplayName,Mail

    Die User bei denen das Attribut Mail fehlt, werden auch angezeigt.

    Gruß

    Martin

    Freitag, 1. Juli 2011 15:15
  • Für Ad-hoc-Abfragen vom immer gleichen Adminrechner sind die AD-Cmdlets von Quest ne prima Sache. Für Scripte die auch mal auf nem anderen Rechner bzw. Server laufen sollen, finde ich es allgemein aber eher kontraproduktiv immer nachschauen zu müssen, welche externen Snap-ins noch installiert werden müssen, damit das Skript läuft. Das gilt insbesondere wenn Scripte nur von Zeit zu Zeit oder von unterschiedlichen Leuten benutzt werden.

    Die Quest-Cmdlets gibts übrigens hier.

    Grüße, Denniver


    http://bytecookie.wordpress.com/
    • Als Antwort markiert -- Chris -- Mittwoch, 6. Juli 2011 05:11
    Freitag, 1. Juli 2011 15:39
    Moderator
  • >Du kannst dir auch die ActiveRoles Management Shell von Quest installiert, dann geht's einfacher.

    Mit den Exchange-Erweiterungen wäre es genauso einfach. Oder die PowerShell 2 auf einem Windows 2008 R2 mit den AD-Cmdlets.

    Aber ich sehe das wie Denniver: Wenn man die Rechner alle kennt, kann man ein Zusatzwerkzeug nutzen, sonst lieber mit Werkzeugen, die überall funktionieren. Da sind so schon genau Stolperstellen drin (32/64-Bit, Berechtigungen, usw.).


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    • Als Antwort markiert -- Chris -- Mittwoch, 6. Juli 2011 05:11
    Samstag, 2. Juli 2011 10:01

Alle Antworten

  • Das geht z.b. so:

    $ADsearcher = New-Object System.DirectoryServices.DirectorySearcher 
    $ADsearcher.Filter = "(objectCategory=person)"
    $allusers = $ADsearcher.findall()
    
    foreach ($user in $allusers) {
      write-host $user.properties.samaccountname "," $user.properties.displayname "," $user.properties.mail "," $user.Properties.mailnickname
    }
    

    Das Script benutzt ein DirectoySearcher-Objekt und filtert alle Userobjekte aus der aktuellen Domäne und listet die gewünschten Attribute.

    Lies auch bitte mal diesen Post.

    Grüße, Denniver


    http://bytecookie.wordpress.com/
    Freitag, 1. Juli 2011 13:15
    Moderator
  • Du kannst dir auch die ActiveRoles Management Shell von Quest installiert, dann geht's einfacher.

    Get-QADUser | ft DisplayName,Mail

    Die User bei denen das Attribut Mail fehlt, werden auch angezeigt.

    Gruß

    Martin

    Freitag, 1. Juli 2011 15:15
  • Für Ad-hoc-Abfragen vom immer gleichen Adminrechner sind die AD-Cmdlets von Quest ne prima Sache. Für Scripte die auch mal auf nem anderen Rechner bzw. Server laufen sollen, finde ich es allgemein aber eher kontraproduktiv immer nachschauen zu müssen, welche externen Snap-ins noch installiert werden müssen, damit das Skript läuft. Das gilt insbesondere wenn Scripte nur von Zeit zu Zeit oder von unterschiedlichen Leuten benutzt werden.

    Die Quest-Cmdlets gibts übrigens hier.

    Grüße, Denniver


    http://bytecookie.wordpress.com/
    • Als Antwort markiert -- Chris -- Mittwoch, 6. Juli 2011 05:11
    Freitag, 1. Juli 2011 15:39
    Moderator
  • >Du kannst dir auch die ActiveRoles Management Shell von Quest installiert, dann geht's einfacher.

    Mit den Exchange-Erweiterungen wäre es genauso einfach. Oder die PowerShell 2 auf einem Windows 2008 R2 mit den AD-Cmdlets.

    Aber ich sehe das wie Denniver: Wenn man die Rechner alle kennt, kann man ein Zusatzwerkzeug nutzen, sonst lieber mit Werkzeugen, die überall funktionieren. Da sind so schon genau Stolperstellen drin (32/64-Bit, Berechtigungen, usw.).


    Grüße aus Berlin schickt Robert
    MVP Exchange Server
    • Als Antwort markiert -- Chris -- Mittwoch, 6. Juli 2011 05:11
    Samstag, 2. Juli 2011 10:01
  • Quest hat funktioniert - sogar mit einem Einzeiler. Werde mir aber sicher auch die PowerShell 2 ansehen, da ich der Meinung bin, es sollte mit Microsoft Boardmittel inzwischen auch schon funktionieren.

     


    Chris
    Mittwoch, 6. Juli 2011 05:11