使用以下命令不会生成名为msDS-UserPasswordExpiryTimeComputed
. 这是某种类型的“隐藏”成员吗?是否还有其他“隐藏”的对象成员?
Get-ADUser -identity $Env:USERNAME –Properties *
Get-ADUser -identity $Env:USERNAME –Properties * | Format-List -Property * -Force
但是, 的值msDS-UserPasswordExpiryTimeComputed
是由以下命令生成的。
Get-ADUser -Identity $Env:USERNAME –Properties "msDS-UserPasswordExpiryTimeComputed"
它可用于计算用户帐户密码的到期日期。
Get-ADUser -Identity $Env:USERNAME –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
它发生在 PowerShell Core 和 Windows PowerShell 上。
PS C:\> $PSVersionTable.PSVersion.ToString()
7.2.6
PS C:\> $PSVersionTable.PSVersion.ToString()
5.1.19041.1682
这似乎
msDS-UserPasswordExpiryTimeComputed
是一种Constructed
属性类型,它不是静态的,而是计算/计算以获取值。理论是,由于它是一个计算值,因此枚举每个计算开销的值会占用更多资源。出于性能原因,默认情况下
Get-ADUser
不会使用通配符-Properties *
参数枚举所有计算的属性。[1]上述结论的来源参考[1]
解决方案是根据以下示例 PowerShell显式指定
Constructed
属性属性值之一和通配符。-Properties *
据我所知,如果您明确命名其中一个,其他Constructed
属性属性值将枚举。电源外壳
支持资源