O uso dos comandos a seguir não produz um membro chamado msDS-UserPasswordExpiryTimeComputed
. Isso é algum tipo de membro "oculto"? Existem outros membros "ocultos" de objetos?
Get-ADUser -identity $Env:USERNAME –Properties *
Get-ADUser -identity $Env:USERNAME –Properties * | Format-List -Property * -Force
No entanto, o valor de msDS-UserPasswordExpiryTimeComputed
é produzido pelo comando a seguir.
Get-ADUser -Identity $Env:USERNAME –Properties "msDS-UserPasswordExpiryTimeComputed"
Ele pode ser usado para calcular a data de expiração da senha da conta do usuário.
Get-ADUser -Identity $Env:USERNAME –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
Ocorre no PowerShell Core e no Windows PowerShell.
PS C:\> $PSVersionTable.PSVersion.ToString()
7.2.6
PS C:\> $PSVersionTable.PSVersion.ToString()
5.1.19041.1682
Parece que
msDS-UserPasswordExpiryTimeComputed
é um tipo deConstructed
atributo que não é estático, mas calculado/computado para obter o valor.A teoria é que, como é um valor calculado, é mais intensivo em recursos enumerar o valor por sobrecarga computacional. Por motivos de desempenho, por padrão
Get-ADUser
, não enumera todos os atributos calculados com o-Properties *
parâmetro curinga como foi usado. [1]Referência da fonte por conclusão acima [1]
A solução é especificar explicitamente um dos
Constructed
valores de propriedade de atributo em conjunto com o-Properties *
curinga conforme o exemplo abaixo do PowerShell. Pelo que posso dizer, se você nomear um desses explicitamente, os outrosConstructed
valores de propriedade de atributo serão enumerados.PowerShell
Recursos de apoio