2 votos

24 horas de expiración de la primera contraseña

EDITAR** Estoy pensando en ejecutar una tarea programada al final de cada día de trabajo para recuperar todas las cuentas que nunca se han conectado y desactivar sus cuentas. Por favor, disculpe cualquier error de sintaxis. Es muy posible que me esté equivocando. ¿Alguien puede decir si esta solución funcionará?

get-aduser -f {-not ( lastlogontimestamp -like "*")} | Disable-ADAccount

Pregunta original **

No soy un sysadmin persay, soy más un programador, y nuevo en el directorio activo y scripting powershell. He hecho scripting en bash y otros lenguajes así que puedo cogerlo rápidamente.

Mi función actual (soy nuevo) tiene un estándar de la industria para caducar/desactivar las cuentas si la contraseña de primer uso no se ha utilizado en 24 horas. He hecho una búsqueda y encontré que AD no soporta esta característica, pero aprendí que puede ser posible a través de un script. Hay un plazo ajustado de una auditoría y debo decir que estamos un poco desesperados.

Cualquier ayuda sería apreciada, incluso sólo un antecedente sobre las posibles formas de establecer el tiempo de caducidad o identificar las cuentas que aún no han cambiado la contraseña.

Muchas gracias

2voto

bentek Puntos 709

Puede comprobar las siguientes propiedades para saber si la cuenta de usuario se ha conectado o ha cambiado de contraseña.

LastLogonDate PasswordLastSet

get-aduser -identity ACCOUNTNAME -properties LastLogonDate,PasswordLastSet

2voto

bentek Puntos 709

Sí, tu frase debería funcionar. He modificado tu comando original para filtrar sólo las cuentas habilitadas.

Get-ADuser -f {-not ( lastlogontimestamp -like "*") -and (enabled -eq $true)} | Disable-ADAccount

1voto

Ivana Puntos 193

Active Directory no tiene una forma de establecer la caducidad de la contraseña en las cuentas individuales. Cuando va a caducar las contraseñas, comprueba la cuenta de Atributo Pwd-Last-Set contra el global Max-Pwd-Age el escenario.

Si estás utilizando algún tipo de proceso con guión para crear cuentas de usuario, yo haría lo siguiente:

  • Alterar la creación de usuarios script para añadir a una lista de nombres de usuario y marcas de tiempo Pwd-Last-Set.
  • Crear una tarea programada que itere a lo largo de la lista. Si la marca de tiempo de Pwd-Last-Set en la cuenta es la misma que en el archivo (es decir, no han cambiado las contraseñas) y la marca de tiempo en el archivo es mayor de 24 horas, establece el atributo Pwd-Last-Set en la cuenta a 0 y desactiva la flag de no expirar si es necesario. Esto hará que la contraseña expire inmediatamente.

1voto

g1zmotech Puntos 23

Para simplificar, ¿hay alguna forma de comprobar simplemente si la contraseña no se ha cambiado nunca? De esta manera, podría ejecutar una tarea programada al final del día deshabilitando cualquier cuenta con esta propiedad? - Jacksgrin

Veo que esta pregunta es bastante antigua, sin embargo, comparando los valores del Created o CreatedTimeStamp junto con las propiedades PasswordLastSet propiedad debería ser un comienzo.

get-aduser -identity [accountname] -properties Created,CreatedTimeStamp,PasswordLastSet,LastLogonDate

Esto debería mostrarle si la contraseña de la cuenta fue cambiada alguna vez desde el inicio de la cuenta.

Para su información, no puedo comentar o habría respondido a su comentario.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: