Ist msDS-UserPasswordExpiryTimeComputed ein „verstecktes“ Mitglied?

Ist msDS-UserPasswordExpiryTimeComputed ein „verstecktes“ Mitglied?

Die Verwendung der folgenden Befehle erzeugt kein Mitglied mit dem Namen msDS-UserPasswordExpiryTimeComputed. Handelt es sich hierbei um eine Art „verstecktes“ Mitglied? Gibt es andere „versteckte“ Mitglieder von Objekten?

Get-ADUser -identity $Env:USERNAME –Properties *
Get-ADUser -identity $Env:USERNAME –Properties * | Format-List -Property * -Force

Der Wert msDS-UserPasswordExpiryTimeComputedwird jedoch durch den folgenden Befehl erzeugt.

Get-ADUser -Identity $Env:USERNAME –Properties "msDS-UserPasswordExpiryTimeComputed"

Damit kann das Ablaufdatum des Kennworts eines Benutzerkontos berechnet werden.

Get-ADUser -Identity $Env:USERNAME –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

Es tritt sowohl bei PowerShell Core als auch bei Windows PowerShell auf.

PS C:\> $PSVersionTable.PSVersion.ToString()
7.2.6
PS C:\> $PSVersionTable.PSVersion.ToString()
5.1.19041.1682

Antwort1

Es scheint, dassmsDS-UserPasswordExpiryTimeComputedist einConstructedAttributTyp, der nicht statisch ist, sondern berechnet/kalkuliert wird, um den Wert zu erhalten.

Die Theorie istdass es, da es sich um einen berechneten Wert handelt, ressourcenintensiver ist, den Wert pro Rechenaufwand aufzuzählen. Aus Leistungsgründenstandardmäßig Get-ADUserlistet nicht alle berechneten Attribute mit dem Platzhalterparameter auf, -Properties *wie es verwendet wurde.[1]

Quellenangabe gemäß obiger Schlussfolgerung [1]

Die Lösung istum einen der ConstructedAttributeigenschaftswerte in Verbindung mit dem -Properties *Platzhalter gemäß dem folgenden PowerShell-Beispiel explizit anzugeben.

Wenn Sie jedoch eines davon explizit benennen, werden meines Wissens nach einige der anderen ConstructedAttribut-Eigenschaftswerte aufgezählt.aber nicht unbedingt alle.

Dies bedeutet, wenn erwartete Attribute nicht ausgegeben werden, dann fügen Sie diese explizit Komma getrennt vor dem Komma Asterisk [ , *] hinzu. (zB Get-ADUser -Identity $Env:USERNAME –Properties msDS-UserPasswordExpiryTimeComputed, ModifyTimeStamp, * | Format-List * -Force;).

Power Shell

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

Unterstützende Ressourcen

verwandte Informationen