Listar usuarios inactivos con PowerShell

Se pretende sacar un listado de usuarios inactivos en una Unidad Organizativa (OU) en particular mediante un script de PowerShell.


Usaremos:
  •  Get-ADUser ->  Extraer la información del objeto usuarios.
  • -SearchBase -> Identificar el dominio y la OU en concreto.
  • -filter -> Filtro de obtención de datos (parámetro obligatorio)
  • -properties -> Extraer solo las características que deseamos del objeto usuario.
  • Where-Object -> Filtrar los resultados y obtener solo lo que deseamos.
  • Sort-Object -> para ordenar los resultados.
  • Format-Table -> para mostrar la información en tabla.
  • Out-File -> Exportar los resultados a un archivo de texto.
  • | -> pipe para concatenar funciones al script.
  •  ` -> multilinea.
  • # -> comentario

El comado completo sería:

Get-ADUser -SearchBase ‘OU=SubOU_1,OU=OU_1,DC=suja,DC=com’ | `
-filter *  `
-Properties Name, Enabled, whenChanged, PasswordExpired | `
Where-Object {$_.Enabled -Match "False" -or $_.PasswordExpired -Match "True"} | `
Sort-Object Name | `
Format-Table Name, SamAccountName | `
Out-File "C:\TMP\UserInactive.txt"


La búsqueda se realizará sobre la Unidad Organizativa (OU) OU_1/Sub_Ou1 y no aplicamos ningún filtro. 


El filtro al ser un comando obligatorio pondremos el caracter comodín * para que extraiga todos los datos.

De las propiedades del objeto solo queremos conocer si está habilitado (Enable), si ha expirado la contraseña (PasswordExpired) y su fecha de última modificación.

Ahora con Where-Object filtramos para que muestre solo los objetos que no estén habilitados y con la contraseña expirada. 

Ordenamos el resultado por nombre y exportamos el resultado en formato tabla al archivo de texto que indicamos (se sobreescriben los datos no se añaden).

Si quieres ver todos los atributos de unobjeto usuario lanza
Get-ADUser nombreUsuario  -Properties * | Select *


Referencias:

No hay comentarios:

Publicar un comentario