我在搜索和指定返回输出时尝试保留Microsoft.ActiveDirectory.Management.ADAccount
对象;但是,在选择输出时,会填充其他字段。问题:
运行以下命令:
$a = Get-ADUser $targetPerson -Properties Department, EmailAddress, Office, OfficePhone
返回:
Department : **** DistinguishedName : CN=1111,OU=2222,OU=3333,OU=4444,DC=5555,DC=6666 EmailAddress : ****@mail.com Enabled : **** GivenName : **** Name : **** ObjectClass : user ObjectGUID : **** Office : **** OfficePhone : **** SamAccountName : **** SID : **** Surname : **** UserPrincipalName : ****
答案 0 :(得分:0)
Get-ADUser
具有它始终返回的默认属性集,包括例如可分辨名称,SID和帐户名称。参数-Properties
用于指定cmdlet应返回的其他属性,因为默认属性集只是所有可用属性的一小部分。
要将Get-ADUser
的输出限制为一组特定属性,您需要通过Select-Object
管道输出:
$props = 'Department', 'EmailAddress', 'Office', 'OfficePhone'
$a = Get-ADUser $targetPerson -Properties $props |
Select-Object $props
当然,这会将ADAccount
对象转换为自定义对象(PSCustomObject
),但我不认为可以解决这个问题。
答案 1 :(得分:0)
Microsoft.ActiveDirectory.Management.ADAccount对象从其创建的类继承成员。以下是一些继承的成员 - Name,ObjectClass,ObjectGUID,SID和SamAccountName。
我认为你不能创建一个没有那些继承成员的Microsoft.ActiveDirectory.Management.ADAccount对象。
但是如果您的项目可以接受PSCustomObject,那么将$ a传递给Select-object。
$a | Select-Object -Property Department, EmailAddress, Office, OfficePhone