Powershell (Get-ADUser -identity).someproperty 未顯示結果

Powershell (Get-ADUser -identity).someproperty 未顯示結果

當我運行時,我試圖搜尋 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在結果中仍然不包含屬性。

第三次嘗試:

Get-ADUser testuser -Properties * 

啊哈!已經很接近了。它包括Title財產,以及一大堆您現在不關心的其他財產。

第四次嘗試:

(Get-ADUser testuser -Properties *).title

就是這樣!此組合會取得使用者的所有屬性(因此包括Title),然後僅顯示該Title屬性。

選修的:您可以透過不必費心詢問為-Properties *您提供的 100 多個屬性,而只取得預設屬性 plus 來使其更快一點Title,方法如下:

(Get-ADUser testuser -Properties Title).Title

答案2

我發現以下命令可以讓我獲取信息,但為什麼它不能與我的其他命令一起使用?

(Get-ADUser $user -Properties *).$targetProperty

相關內容