Comment récupérer alias e-mail et le CN pour tout le monde dans un groupe AD en utilisant PowerShell
-
28-10-2019 - |
Question
J'utilise PowerShell avec les cmdlets AD Quest.
Je peux utiliser l'applet de commande Get-QADGroupMember pour obtenir une liste de tous dans un groupe donné. Jusqu'à présent, si bon mais je voudrais obtenir leur alias de courriel ainsi. Tout ce qui est retourné est actuellement quelque chose comme:
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
J'ai essayé d'utiliser get-QADUser avec le drapeau de -includeallproperties mais je comprends toujours que les champs ci-dessus retourné et je ne sais pas comment obtenir les données renvoyées qui dit la documentation est mis en cache sur l'ordinateur.
Toute aide serait appréciée.
UPDATE
Je fini par utiliser "select" similaire à ci-dessous:
$everyone = Get-QADGroupMember "All employees" | select firstname, lastname, email
Et que tout a je besoin dans un tableau de hashage. À ce moment-là, il est facile de faire tout ce qui est nécessaire par Itère tout le monde avec le code comme:
for ($i=0; $i -le $everyone .length-1; $i++)
{
write-host $everyone[$i].email
}
Il m'a fallu une éternité pour trouver le « » notation pour tirer des valeurs spécifiques de la table de hachage. Je l'ai fait l'analyse de texte et qui a fonctionné, mais je savais que ne pouvait pas être la bonne façon de le faire et a finalement trouvé la documentation sur la notation des points. J'espère que la documentation qui sauve ici quelqu'un d'autre quelque temps!
La solution
Êtes-vous sûr qu'il ne retourne pas vraiment cette information? Avez-vous essayé redirigeant la commande dans Get-Member
ou Format-List -Force *
? PowerShell peut être configuré pour afficher uniquement quelques propriétés des éléments et non pas tout ce qui pourrait être le cas ici.
Vous pouvez sélectionner des propriétés à l'aide Select-Object
ou tout simplement select
si vous konw ils sont là, même si PowerShell ne les affiche pas par défaut:
Some-Command | select Name, Type, DN, SomeOtherProperty
Vous pouvez voir par exemple avec Get-ChildItem
aussi:
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
L'invocation normale ne produit que quatre propriétés: Mode
, LastWriteTime
, Length
et Name
. Cependant, il y a beaucoup plus, comme le montre la Get-Member
.
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;}
Autres conseils
Rememember que les bandes de sélection d'objets vers le bas de l'objet et génère de nouvelles.
Ainsi, dans cet exemple:
$test = get-qaduser atestuser | select-object name
$ test sera un PSCustomObject (System.Object) ne contenant que le nom.
Que voulez-vous faire avec les tâches données? Sortie à la console ... à un fichier?
Je ferais quelque chose comme ceci:
get-qadgroupmember "domain users" | format-table name, displayname, email
ou
get-qadgroupmember "domain users" | select-object name, displayname, email | Export-Csv c:\acsvfile.csv