Является ли msDS-UserPasswordExpiryTimeComputed «скрытым» членом?

Является ли msDS-UserPasswordExpiryTimeComputed «скрытым» членом?

Использование следующих команд не создает члена с именем 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

решение1

Кажется, чтоmsDS-UserPasswordExpiryTimeComputedэтоConstructedатрибуттип, который не является статическим, а вычисляется/вычисляется для получения значения.

Теория таковачто поскольку это вычисляемое значение, то перечислять значение на вычислительные накладные расходы требует больше ресурсов. По соображениям производительности,по умолчанию Get-ADUserне перечисляет все вычисляемые атрибуты с -Properties *параметром подстановочного знака, как было использовано.[1]

Ссылка на источник согласно приведенному выше заключению [1]

Решение естьдля явного указания одного из Constructedзначений свойств атрибута в сочетании с -Properties *подстановочным знаком, как в приведенном ниже примере PowerShell.

Однако, насколько я могу судить, если вы явно назовете один из них, некоторые другие Constructedзначения свойств атрибутов будут перечисленыно не обязательно все из них.

Это означает, что если ожидаемые атрибуты не выводятся, то добавьте их явно, разделив запятыми перед запятой-звездочкой [ , *]. (например Get-ADUser -Identity $Env:USERNAME –Properties msDS-UserPasswordExpiryTimeComputed, ModifyTimeStamp, * | Format-List * -Force;).

PowerShell

Get-ADUser -Identity $Env:USERNAME –Properties msDS-UserPasswordExpiryTimeComputed, * | Format-List * -Force;

Поддерживающие ресурсы

Связанный контент