active-directory – Powershell: ¿Cómo consulto pwdLastSet y hago que tenga sentido?

Pregunta:

Necesito obtener el último cambio de contraseña para un grupo de cuentas en un grupo de seguridad de Active Directory, y creo que esto es algo en lo que PowerShell debería ser bueno.

En este momento, ya estoy atascado en cómo leer el atributo pwdLastSet de la cuenta de AD que estoy viendo. Incluso ejecutando algo simple como esto:

[adsi] "LDAP://cn=user1,ou=Staff,ou=User Accounts,dc=ramalamadingdong,dc=net" | Format-List *

da resultados para pwdLastSet que aparecen así:

pwdLastSet            : {System.__ComObject}

Siento que estoy haciendo esto de la manera incorrecta, entonces, ¿cuál es la mejor manera de consultar y luego formatear la salida (el valor se basa en Windows Epoch y no es muy legible por humanos) del atributo pwdLastSet?

Respuesta:

También puede hacer esto sin un complemento. Probé esto y funcionó:

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

También obtengo un System .__ ComObject para pwdLastSet si tengo el objeto de usuario configurado así:
$ usuario = [adsi] "LDAP: // cn = usuario1, ou = Personal, ou = Cuentas de usuario, dc = ramalamadingdong, dc = net"

Debería haber una forma de usar [System .__ ComObject] .InvokeMember () y la reflexión para obtener ese valor pwdLastSet del objeto $ user, pero no he podido hacerlo bien. Nunca lo descubrí, así que usé el ejemplo anterior y seguí adelante.

Si va a trabajar mucho con AD (o Exchange o SQL Server), es posible que desee obtener el complemento y usarlo.

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım