[英]Properties not showing correctly for ADUsers in Powershell
在Powershell中查看ADUsers時,發現有些奇怪的地方。
如果輸入以下內容:
PS> Get-ADUser Xuser -Properties PasswordLastSet, LastLogonDate
我會得到這樣的輸出:
DistinguishedName : CN=Xuser,OU=Domain Users,DC=LocalDC,DC=local
Enabled : True
GivenName :
LastLogonDate : 7/14/2016 8:24:03 AM
Name : Xuser
ObjectClass : user
PasswordLastSet : 7/1/2016 11:48:37 AM
SamAccountName : Xuser
Surname :
UserPrincipalName :
如您所見,我在PasswordLastSet和LastLogonDate上都有時間戳。
但是,如果我輸入以下內容:
PS> $user = Get-ADUser Xuser
PS> $user.LastLogonDate -eq $null
PS> True
PS> $user.PasswordLastSet -eq $null
PS> True
為了確保沒有混亂,我輸入:
PS> $user
DistinguishedName : CN=Xuser,OU=Domain Users,DC=LocalDC,DC=local
Enabled : True
GivenName :
LastLogonDate :
Name : Xuser
ObjectClass : user
PasswordLastSet :
SamAccountName : Xuser
Surname :
UserPrincipalName :
由於某種原因,該信息顯示$ null。
我注意到的一件事是,當我鍵入時:
PS> $user = Get-ADUser Xuser
默認情況下,它不收集PasswordLastSet和LastLogonDate -您必須使用-Properties
開關將特定信息請求為參數。
如果輸入:
PS> $user.LastLogonDate
PS> $user
現在,它具有LastLogonDate字段,但它為$ null。 如果輸入以下內容,則同樣如此:
PS> $user.PasswordLastSet
PS> $user
$user
的輸出中都顯示了PasswordLastSet和LastLogonDate,但是如果我運行一個條件以查看值是否為$ null,它將返回True
。
有點怪異的行為,我很好奇為什么這樣做。 我最好的猜測是,$ user僅使用Get-ADUser
cmdlet的默認信息填充,並且非常簡單地為WYSIWYG。 要獲取這些特定字段,我必須隱式請求它們。
我想查看默認情況下是否隱藏了某些字段(除非在初始Get-ADUser
cmdlet中要求),所以,我鍵入了:
PS> $user.random
PS> $user
可以肯定的是, random :
那里是一個領域。
我什至可以做到這一點:
PS> $user.random = "Property"
當我輸入$user
時,它顯示為random : {Property}
問題:有人可以簡要解釋一下為什么會這樣嗎?
如果您要測試變量是否具有內容而不是僅僅存在,請嘗試:
$user.LastLogonDate.Length -gt 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.