簡體   English   中英

Powershell中的ADUsers屬性無法正確顯示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM