So rufen Sie E-Mail-Alias ​​und CN für alle Mitglieder einer AD-Gruppe mithilfe von PowerShell ab

StackOverflow https://stackoverflow.com/questions/5861816

Frage

Ich verwende PowerShell mit den Quest AD-Cmdlets.

Ich kann das Cmdlet Get-QADGroupMember verwenden, um eine Liste aller Mitglieder einer bestimmten Gruppe abzurufen.Soweit so gut, aber ich würde gerne auch ihren E-Mail-Alias ​​erhalten.Derzeit wird nur Folgendes zurückgegeben:

Name      Type  DN
----      ----  --
Jane Doe  User  CN=Jane Doe,OU=Employee,DC=companyname,DC=com
Job Blow  User  CN=Joe Blow,OU=Employee,DC=companyname,DC=com

Ich habe versucht, get-qaduser mit dem Flag -includeallproperties zu verwenden, bekomme aber immer noch nur die oben genannten Felder zurückgegeben und weiß nicht, wie ich an die zurückgegebenen Daten komme, die laut Dokumentation auf dem Computer zwischengespeichert sind.

Jede Hilfe wäre dankbar.

AKTUALISIEREN

Am Ende habe ich „select“ ähnlich wie unten verwendet:

$everyone = Get-QADGroupMember "All employees" | select firstname, lastname, email

Und das brachte alles, was ich brauchte, in eine Reihe von Hashtabellen.An diesem Punkt ist es einfach, alles Notwendige zu tun, indem man alle mit Code wie dem folgenden durchläuft:

for ($i=0; $i -le $everyone .length-1; $i++)
{
    write-host $everyone[$i].email
}

Ich habe ewig gebraucht, um das "" zu finden. Notation, um bestimmte Werte aus dem Hashtable herauszuziehen.Ich habe eine Textanalyse durchgeführt und das hat funktioniert, aber ich wusste, dass das nicht die richtige Vorgehensweise sein konnte, und habe schließlich eine Dokumentation zur Punktnotation gefunden.Ich hoffe, dass die Dokumentation hier jemand anderem etwas Zeit spart!

War es hilfreich?

Lösung

Sind Sie sicher, dass diese Informationen wirklich nicht zurückgegeben werden?Haben Sie versucht, den Befehl weiterzuleiten? Get-Member oder Format-List -Force *?PowerShell kann so konfiguriert werden, dass nur einige Eigenschaften von Elementen angezeigt werden und nicht alle, was hier der Fall sein könnte.

Sie können Eigenschaften auswählen mit Select-Object oder nur select Wenn Sie wissen, dass sie vorhanden sind, auch wenn PowerShell sie standardmäßig nicht anzeigt:

Some-Command | select Name, Type, DN, SomeOtherProperty

Sie können dies zum Beispiel mit sehen Get-ChildItem zu:

PS Home:\> gci *.ps1


    Directory: C:\Users\Joey


Mode                LastWriteTime     Length Name
----                -------------     ------ ----
-a---        2011-04-27     18:50        169 format.ps1
-a---        2011-04-26     18:36       1064 Untitled1.ps1
-a---        2011-04-27     18:41         69 x.ps1
-a---        2011-04-23     19:58         91 y.ps1

Der normale Aufruf liefert nur vier Eigenschaften: Mode, LastWriteTime, Length Und Name.Es gibt jedoch noch viel mehr, z Get-Member zeigt an.

PS Home:\> gci *.ps1|gm -MemberType Property


   TypeName: System.IO.FileInfo

Name              MemberType Definition
----              ---------- ----------
Attributes        Property   System.IO.FileAttributes Attributes {get;set;}
CreationTime      Property   System.DateTime CreationTime {get;set;}
CreationTimeUtc   Property   System.DateTime CreationTimeUtc {get;set;}
Directory         Property   System.IO.DirectoryInfo Directory {get;}
DirectoryName     Property   System.String DirectoryName {get;}
Exists            Property   System.Boolean Exists {get;}
Extension         Property   System.String Extension {get;}
FullName          Property   System.String FullName {get;}
IsReadOnly        Property   System.Boolean IsReadOnly {get;set;}
LastAccessTime    Property   System.DateTime LastAccessTime {get;set;}
LastAccessTimeUtc Property   System.DateTime LastAccessTimeUtc {get;set;}
LastWriteTime     Property   System.DateTime LastWriteTime {get;set;}
LastWriteTimeUtc  Property   System.DateTime LastWriteTimeUtc {get;set;}
Length            Property   System.Int64 Length {get;}
Name              Property   System.String Name {get;}

Andere Tipps

Denken Sie daran, dass „select-object“ das Objekt entfernt und neue generiert.

Also in diesem Beispiel:

$test = get-qaduser atestuser | select-object name

$test ist ein PSCustomObject (System.Object), das nur den Namen enthält.

Was möchten Sie mit den Daten machen?Ausgabe an die Konsole...in eine Datei?

Ich würde so etwas machen:

get-qadgroupmember "domain users" | format-table name, displayname, email

Oder

get-qadgroupmember "domain users" | select-object name, displayname, email | Export-Csv c:\acsvfile.csv
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top