Obtenga una lista de cuentas de usuario caducadas en AD usando PowerShell
Publicado originalmente en julio de 2017 y actualizado en agosto de 2019
Cómo obtener una lista de cuentas de usuario caducadas con PowerShell
Una de las tareas más importantes que realiza un administrador de Active Directory es garantizar que las cuentas de usuario caducadas se informen de manera oportuna y que se tomen medidas para eliminarlas o deshabilitarlas de inmediato. Tenga en cuenta que las cuentas de usuario para las que establece una fecha de vencimiento solo se crean temporalmente. Por ejemplo, es posible que haya creado varias cuentas de usuario para permitir que los proveedores inicien sesión en Active Directory. De manera similar, es posible que haya creado cuentas de usuario para contratistas. Si desea ver qué cuentas han caducado, ejecute el siguiente comando de PowerShell:
Search-ADAccount -Server $ThisDomain -Credential $Creds -AccountExpired -UsersOnly -ResultPageSize 2000 -resultSetSize $null| Select-Object Name, SamAccountName, DistinguishedNameTenga en cuenta el uso del cmdlet de PowerShell Search-ADAccount nuevamente, pero esta vez con un modificador diferente. El modificador que utilizamos es AccountExpired. Como sugiere el nombre, el interruptor AccountExpired le ayuda a recopilar cuentas de usuario que han caducado.
Cómo obtener la fecha de vencimiento de la cuenta usando PowerShell
Para obtener la fecha de vencimiento de la cuenta AD para todos los usuarios habilitados en su Active Directory, puede usar el cmdlet Get-ADUser con una propiedad -AccountExpirationDate. Ejecute el siguiente script en PowerShell ISE en su Windows Server:
Get-ADUser -Filter 'enabled -eq $true' -Properties AccountExpirationDate | Select sAMAccountName, distinguishedName, AccountExpirationDateObtendrá la fecha y hora de vencimiento de una lista completa de sus usuarios de AD.
Si necesita un resumen para un grupo específico, debe modificar el script agregando el parámetro -SearchBase. Puede canalizar datos a un archivo .csv (por ejemplo, para importarlos a Excel o abrirlos en un editor de texto) agregando |export-csv
Suponiendo que necesitamos exportar la lista de fechas de vencimiento de cuentas para la unidad organizativa "TI" del dominio Enterprise.com, la expresión que ejecutaremos en DC será la siguiente:
Get-ADUser -Filter 'enabled -eq $true' -Searchbase "OU=IT,DC=enterprise,DC=com" -Properties AccountExpirationDate | Select SAMAccountName, distinguishedName, AccountExpirationDate |export-csv C:TempExpiryDate.csv -NoTypeInformationEn resumen, con conocimientos mínimos de secuencias de comandos de Microsoft Powershell, Search-ADAccount, combinado con Get-ADUser, puede ayudarle a resolver muchas tareas ad hoc de análisis y limpieza de AD.
¿Necesita más scripts de PowerShell para Active Directory? Encuentre todos los comandos de PowerShell más buscados para Active Directory en una publicación de blog.