formatação do powershell de uma data armazenada como int64

1

Estou tentando obter uma lista dos usuários no meu domínio do AD juntamente com a expiração da senha. Eu tenho isso até agora no PowerShell:

get-aduser -filter * -properties "msDS-UserPasswordExpiryTimeComputed" | select name,samaccountname,@{Name="Expiry";Expression="msDS-UserPasswordExpiryTimeComputed"}

O que resulta em algo parecido com isto:

name                       samaccountname                                Expiry
----                       --------------                                ------
longneck                   longneck                          129802700808178073

Como posso converter essa coluna Expiry em um datetime? Eu tentei isso:

get-aduser -filter * -properties "msDS-UserPasswordExpiryTimeComputed" | select name,samaccountname,@{Name="Expiry";Expression={[datetime]::FromFileTime("msDS-UserPasswordExpiryTimeComputed")}}

Mas isso resulta em uma coluna de expiração em branco.

name                       samaccountname                                Expiry
----                       --------------                                ------
longneck                   longneck                          

O que estou fazendo de errado?

    
por longneck 03.02.2012 / 18:44

1 resposta

1

Você está perdendo o $_ para indicar o atributo qual do objeto msDS-UserPasswordExpiryTimeComputed a ser usado em sua expressão. A variável $_ é o objeto atual padrão no pipeline. Você encontraria o valor em $_."msDS-UserPasswordExpiryTimeComputed" .

Get-ADUser -Filter * -Properties "msDS-UserPasswordExpiryTimeComputed" | 
  Select-Object name,samaccountname,@{Name="Expry";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
    
por 03.02.2012 / 19:31

Tags