So rufen Sie E-Mail-Alias und CN für alle Mitglieder einer AD-Gruppe mithilfe von PowerShell ab
-
28-10-2019 - |
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!
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