PowerShell:Get-Member不会显示所有可用的属性

时间:2014-05-05 15:40:46

标签: powershell active-directory

get-member怎么没有显示所有可用的成员?例如。

PS > get-aduser john.doe | get-member -MemberType All -View All

   TypeName: Microsoft.ActiveDirectory.Management.ADUser

Name              MemberType            Definition
----              ----------            ----------
Contains          Method                bool Contains(string propertyName)
Equals            Method                bool Equals(System.Object obj)
GetEnumerator     Method                System.Collections.IDictionaryEnumerator GetEnumerator()
GetHashCode       Method                int GetHashCode()
GetType           Method                type GetType()
ToString          Method                string ToString()
Item              ParameterizedProperty Microsoft.ActiveDirectory.Management.ADPropertyValueCollection Item(string p...
DistinguishedName Property              System.String DistinguishedName {get;set;}
Enabled           Property              System.Boolean Enabled {get;set;}
GivenName         Property              System.String GivenName {get;set;}
Name              Property              System.String Name {get;}
ObjectClass       Property              System.String ObjectClass {get;set;}
ObjectGUID        Property              System.Nullable`1[[System.Guid, mscorlib, Version=4.0.0.0, Culture=neutral, ...
SamAccountName    Property              System.String SamAccountName {get;set;}
SID               Property              System.Security.Principal.SecurityIdentifier SID {get;set;}
Surname           Property              System.String Surname {get;set;}
UserPrincipalName Property              System.String UserPrincipalName {get;set;}

PS > get-aduser john.doe -Properties ScriptPath

DistinguishedName : [...],DC=ad,DC=nutex,DC=com
Enabled           : True
GivenName         : John
Name              : john.doe
ObjectClass       : user
ObjectGUID        : [...]
SamAccountName    : john.doe
ScriptPath        : LogonScript.vbs
SID               : [...]
Surname           : Doe
UserPrincipalName : john.doe@nutex.com

如您所见,属性ScriptPath未列为成员。但是有信息......我在这里缺少什么?提前致谢。

1 个答案:

答案 0 :(得分:2)

每个PowerShell Active Directory模块cmdlet(如Get-ADUser和Get-ADComputer)都会为检索到的所有对象显示一组默认属性。您可以使用-Properties参数指定其他属性,但始终会包含默认设置。可以指定另一组扩展属性。此外,通过在-Properties参数中指定属性的LDAPDisplayName,可以包含适用于对象类的任何Active Directory属性

您可以在technet中找到更多详细信息:Active Directory: Get-ADUser Default and Extended Properties

如果您的问题是如何知道用户(来自用户类的对象)可以拥有的所有属性,我认为 Active-Directory Schema 包含此信息。要显示可以在您可以使用的对象上进行检索的所有属性:

get-aduser john.doe -Properties *