
El uso de los siguientes comandos no genera un miembro llamado msDS-UserPasswordExpiryTimeComputed
. ¿Es este algún tipo de miembro "oculto"? ¿Hay otros miembros de objetos "ocultos"?
Get-ADUser -identity $Env:USERNAME –Properties *
Get-ADUser -identity $Env:USERNAME –Properties * | Format-List -Property * -Force
Sin embargo, el valor de msDS-UserPasswordExpiryTimeComputed
se produce mediante el siguiente comando.
Get-ADUser -Identity $Env:USERNAME –Properties "msDS-UserPasswordExpiryTimeComputed"
Se puede utilizar para calcular la fecha de vencimiento de la contraseña de la cuenta de usuario.
Get-ADUser -Identity $Env:USERNAME –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
Ocurre tanto en PowerShell Core como en Windows PowerShell.
PS C:\> $PSVersionTable.PSVersion.ToString()
7.2.6
PS C:\> $PSVersionTable.PSVersion.ToString()
5.1.19041.1682
Respuesta1
Parece quemsDS-UserPasswordExpiryTimeComputed
es unConstructed
atributotipo que no es estático sino calculado/calculado para obtener el valor.
La teoría esque, dado que es un valor calculado, requiere más recursos enumerar el valor por sobrecarga computacional. Por razones de rendimiento,por defecto Get-ADUser
no enumera todos los atributos calculados con el -Properties *
parámetro comodín tal como se utilizó.[1]
Referencia de la fuente según la conclusión anterior [1]
La solucion espara especificar explícitamente uno de los Constructed
valores de propiedad del atributo junto con el -Properties *
comodín según el siguiente ejemplo de PowerShell.
Sin embargo, por lo que puedo decir, si nombra uno de ellos explícitamente, algunos de los Constructed
valores de propiedad de otros atributos se enumeraránpero no necesariamente todos.
Esto significa que si los atributos esperados no se muestran, agréguelos explícitamente también separados por comas antes del asterisco de coma [ , *
]. (p.ej Get-ADUser -Identity $Env:USERNAME –Properties msDS-UserPasswordExpiryTimeComputed, ModifyTimeStamp, * | Format-List * -Force;
).
Potencia Shell
Get-ADUser -Identity $Env:USERNAME –Properties msDS-UserPasswordExpiryTimeComputed, * | Format-List * -Force;