Você também pode fazer isso sem um snap-in. Eu tentei isso e funcionou:
PS #> $searcher=New-Object DirectoryServices.DirectorySearcher PS #> $searcher.Filter="(&(samaccountname=user1))" PS #> $results=$searcher.findone() PS #> [datetime]::fromfiletime($results.properties.pwdlastset[0]) Wednesday, June 10, 2009 4:32:08 PM
Eu também recebo um System .__ ComObject para pwdLastSet se eu tiver o objeto de usuário configurado assim:
$ user = [adsi] "LDAP: // cn = usuário1, ou = Pessoal, ou = Contas de usuário, dc = ramalamadingdong, dc = net"
Deveria haver uma maneira de usar [System .__ ComObject] .InvokeMember () e reflexão para obter o valor pwdLastSet do objeto $ user, mas não consegui acertar. Eu nunca descobri, então usei o exemplo acima e segui em frente.
Se você vai trabalhar muito com o AD (ou o Exchange ou o SQL Server), pode querer obter o snap-in e usá-lo.