2014-07-02 3 views

Répondre

4

Utilisez Select-Object -ExpandProperty de Commutateur:

Get-ADUser <username> -Properties MemberOf | select -ExpandProperty MemberOf 

Lorsque vous utilisez Select-Object pour filtrer certaines propriétés, il renvoie un PSCustomObject contenant les propriétés spécifiées de l'objet sélectionné (ou un tableau de PSCustomObjects, si plusieurs objets sont sélectionnés). Avec -ExpandProperty, qui peut être utilisé avec une seule propriété, pour chaque objet sélectionné, il renvoie l'objet contenu dans la propriété spécifiée.

Ainsi, avec | select MemberOf, ce qui est retourné est un PSCustomObject dont la propriété unique est le MemberOf propriété de l'objet ADUser retourné par Get-ADUser, affiché sous forme de liste (dans le même style qu'il afficherait le résultats si vous répertoriez plusieurs propriétés de l'objet).

Avec | select -ExpandProperty MemberOf, ce qui est de retour est l'objet ADPropertyCollection qui est contenu dans le MemberOf propriété (une collection de chaînes représentant les noms distinctifs des membres), et c'est l'objet qui est affiché sous forme de liste.

BTW, j'ai enlevé le | Format-List * parce que c'est superflu dans ce cas.

+0

Si simple mais j'ai regardé et regardé et finalement juste demandé. Merci!!! –

+0

Malheureusement, vous ne devinerez jamais que ** - ExpandProperty ** est ce que vous cherchez à la lecture de l'aide, parce que l'aide pour cette propriété est si mal écrite - comment êtes-vous censé savoir quoi "une tentative devrait être fait pour étendre cette propriété "est censé signifier? BTW, je viens de remarquer une inexactitude dans la réponse originale, que j'ai corrigé. ** Select-Object ** sans ** - ExpandProperty ** ne renvoie pas le type d'objet d'origine, il renvoie un objet PSCustomObject avec les propriétés sélectionnées de l'objet sélectionné. –

1

Adi Inbar est correct. Permettez-moi de développer ce point en disant si vous rencontrez des problèmes, souvent get-member est très utile pour comprendre ce qui se passe.

PS C:\> ipmo ActiveDirectory 
PS C:\> Get-ADUser testuser42 | select memberof | gm 


    TypeName: Selected.Microsoft.ActiveDirectory.Management.ADUser 

Name  MemberType Definition 
----  ---------- ---------- 
Equals  Method  bool Equals(System.Object obj) 
GetHashCode Method  int GetHashCode() 
GetType  Method  type GetType() 
ToString Method  string ToString() 
memberof NoteProperty Microsoft.ActiveDirectory.Management.ADPropertyValueCollection memberof=Microsoft.ActiveDir... 
+0

Oui, Get-Member est souvent utile pour comprendre ce qui se passe ... mais votre commentaire à ce sujet n'est pas :-) Je n'ai vraiment aucune idée du point que vous essayez de transmettre ici en ce qui concerne la question @ Steven. –

Questions connexes