当我尝试搜索 AD 用户的个人属性时,我运行
(Get-ADUser $userName).$targetProperty
当我跑的时候我什么也没得到
Get-ADUser $userName | select $targetProperty
我获得了属性,但下面一片空白。但是当我运行时。
Get-ADUser $user -Properties *
我得到了完整列表,当我查看 $targetProperty 时,那里已经有一个值。我的环境是 1 DC,它是本地的,我处于管理员模式。
答案1
这取决于您尝试获取的目标属性。如果它不是默认集合中的属性之一(即您刚运行 时获取的属性Get-ADUser testuser
),则它不在结果集中,因此您无法在命令的其他地方获取它。
以下是默认属性。
DistinguishedName : CN=Test User,CN=Users,DC=domain,DC=local
Enabled : True
GivenName : Test
Name : Test User
ObjectClass : user
ObjectGUID : 94916bd1-008e-409f-a1b3-eaXXXXXX266e
SamAccountName : TestUser
SID : S-1-5-21-23XXXXXX88-41XXXXX83-1941XXXX34-32584
Surname : User
UserPrincipalName : [email protected]
假设您想要的属性是Title
。那么您的第一个命令是这样的:
(Get-ADUser testuser).Title
Title
不在默认属性集中,因此括号内的部分不包含属性Title
,所以组合命令的结果为零。
第二次尝试:
Get-ADUser testuser | select Title
这将为您提供单词“Title”作为列的标题,但仍然没有值,因为命令的第一部分仍然没有Title
在结果中包含属性。
第三次尝试:
Get-ADUser testuser -Properties *
啊哈!这很接近了。它包括房产Title
,以及一大堆你现在不关心的其他东西。
第四次尝试:
(Get-ADUser testuser -Properties *).title
就是这样!此组合获取用户的所有属性(因此包括Title
),然后仅显示Title
属性。
选修的:您可以让它更快一些,不用费心去请求给-Properties *
您的 100 多个属性,而只获取默认属性加上Title
,如下所示:
(Get-ADUser testuser -Properties Title).Title
答案2
我发现以下命令可以让我获取信息,但为什么它不能与我的其他命令一起使用?
(Get-ADUser $user -Properties *).$targetProperty