none
Mostrar Usuarios de más de 60 días de haber cambiado su contraseña en Active Directory RRS feed

  • Pregunta

  • Buenas tardes a todos, Solicito de su amable apoyo, tengo un codigo en powershell donde obtengo TODOS los usuarios de mi Active Directory, con algunos atributos que deseo uno de ellos es la ultima vez que cambiaron su contraseña, "PasswordLastSet".

    Lo que quiero hacer es que solo me muestre aquellos usuarios que no han cambiado su contraseña en los ultimos 60 días. No se como hacerle tengo mi codigo y se los muestro:

    $processes = Get-AdUser -Filter * -Properties Name, Initials, UserPrincipalName, PasswordLastSet, LastlogonDate, description
    Write-Output "<table border = 1>"
    Write-Output "<thead>"
    Write-Output "  <tr>"
    Write-Output "      <th>Name</th>"
    Write-Output "      <th>Initials</th>"
    Write-Output "      <th>UserPrincipalName</th>"
    Write-Output "      <th>PasswordLastSet</th>"
    Write-Output "      <th>LastlogonDate</th>"
    Write-Output "      <th>description</th>"
    Write-Output "  </tr>"
    Write-Output "</thead>"
    Write-Output "<tfoot>"
    Write-Output "  <tr>"
    Write-Output "      <td>&nbsp;</td>"
    Write-Output "      <td>&nbsp;</td>"
    Write-Output "      <td>&nbsp;</td>"
    Write-Output "      <td>&nbsp;</td>"
    Write-Output "      <td>&nbsp;</td>"
    Write-Output "      <td>&nbsp;</td>"
    Write-Output "  </tr>"
    Write-Output "</tfoot>"
    Write-Output "<tbody>"
    foreach($process in $processes)
    {
    Write-Output "  <tr>"
    Write-Output "      <td>$($process.Name)</td>"
    Write-Output "      <td>$($process.Initials)</td>"
    Write-Output "      <td>$($process.UserPrincipalName)</td>"
    Write-Output "      <td>$($process.PasswordLastSet)</td>"
    Write-Output "      <td>$($process.LastLogonDate)</td>"
    Write-Output "      <td>$($process.description)</td>"
    Write-Output "  </tr>"
    }
    Write-Output "</tbody>"
    Write-Output "</table>"

    jueves, 24 de enero de 2019 0:35

Respuestas

  • Hola Raphael

    Es fácil, solo tienes que ampliar tu get-aduser con un where-object, te dejo la sentencia:

    Get-AdUser -Filter * -Properties Name, Initials, UserPrincipalName, PasswordLastSet, LastlogonDate, description | where-object {$_.PasswordLastSet -lt (get-date).adddays(-60)}

    El resto déjalo igual

    Saludos,

    • Propuesto como respuesta Victor Rodilla jueves, 24 de enero de 2019 14:45
    • Marcado como respuesta Raphael Trejo jueves, 24 de enero de 2019 17:50
    jueves, 24 de enero de 2019 7:11

Todas las respuestas

  • Hola Raphael

    Es fácil, solo tienes que ampliar tu get-aduser con un where-object, te dejo la sentencia:

    Get-AdUser -Filter * -Properties Name, Initials, UserPrincipalName, PasswordLastSet, LastlogonDate, description | where-object {$_.PasswordLastSet -lt (get-date).adddays(-60)}

    El resto déjalo igual

    Saludos,

    • Propuesto como respuesta Victor Rodilla jueves, 24 de enero de 2019 14:45
    • Marcado como respuesta Raphael Trejo jueves, 24 de enero de 2019 17:50
    jueves, 24 de enero de 2019 7:11
  • Hola, Al parecer no me respeta lo de las fechas, me sigue arrojando todos los usuarios, había pensado como alguna operación de restar el LastLogonDate menos el día actual en el que voy a ejecutar el script  :(.

    Saludos

    jueves, 24 de enero de 2019 17:36
  • Ya me dejo, estaba haciendo algo mal. muchas gracias.
    jueves, 24 de enero de 2019 17:51