Cómo deshabilitar cuentas de usuario inactivas usando PowerShell
Mar 17, 2015
Las cuentas de usuario inactivas de Active Directory (AD) pueden representar un riesgo de seguridad para las organizaciones, en situaciones como cuando antiguos empleados aún tienen cuentas activas meses después de abandonar la empresa porque Recursos Humanos no informó a TI, o cuando las cuentas se crean para un propósito particular pero nunca se eliminan después del evento. Cualquiera que sea la razón de la existencia de tales cuentas, Active Directory puede salirse rápidamente de control, haciendo a su vez que sus sistemas sean más difíciles de auditar y menos seguros.
Módulo de Active Directory para PowerShell
El módulo de PowerShell para Active Directory permite a los administradores de sistemas consultar Active Directory y generar informes utilizando los datos resultantes. El módulo de AD para PowerShell se instala por defecto en los controladores de dominio de Windows Server 2012, o alternativamente puedes descargar las Remote Server Administration Tools (RSAT) for Windows 8.1 e instalar el módulo utilizando el comando a continuación.
Inicie sesión como administrador local, abra un símbolo del sistema de PowerShell, escriba el código a continuación y presione ENTER para instalar el módulo AD para PowerShell:
Install-WindowsFeature RSAT-AD-PowerShell
Buscar en Active Directory cuentas inactivas
El cmdlet Search-ADAccount proporciona una manera fácil de consultar Active Directory en busca de cuentas de usuario inactivas:
Search-ADAccount –UsersOnly –AccountInactive
El comando anterior devuelve todas las cuentas inactivas. Para acotar los resultados a un rango de tiempo específico, puedes añadir el parámetro –TimeSpan al Search-ADAccount. En el ejemplo a continuación, una variable define el valor para el parámetro –TimeSpan, utilizando el cmdlet New-Timespan para simplificar la entrada:
$timespan = New-Timespan –Days 90 Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan
Alternativamente, puede especificar el parámetro –DateTime para devolver cuentas que han estado inactivas desde una fecha determinada. En el comando que sigue, se devuelven las cuentas que no han estado activas desde el 5 de mayo de 2014:
Search-ADAccount –UsersOnly –AccountInactive -DateTime ‘5/20/2014’
Para obtener información más amigable para el usuario sobre las cuentas, envíe los resultados al cmdlet Get-ADUser y luego elija las columnas a mostrar en la salida utilizando Select:
Search-ADAccount –UsersOnly –AccountInactive | Get-ADuser -Properties Department,Title | Select Name,Department,Title,DistinguishedName
Los resultados también pueden ordenarse por un campo especificado, en este ejemplo por el atributo LastLogOnDate, que se deriva del LastLogonTimestamp y se convierte en un formato legible:
Search-ADAccount –UsersOnly –AccountInactive | Get-ADuser -Properties Department,Title | Sort LastLogOnDate | Select Name,Department,Title,DistinguishedName
Es importante señalar que a diferencia del atributo LastLogOn, LastLogonTimestamp se sincroniza entre controladores de dominio, pero puede tener un retraso de 9 a 14 días, por lo que debe tener esto en cuenta al procesar sus resultados.
Otra forma de simplificar la salida y contar el número de usuarios inactivos es canalizar los resultados al cmdlet Measure:
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Measure
Al igual que con cualquier otro cmdlet de PowerShell, los resultados se pueden canalizar a Out-GridView, o a un archivo delimitado por comas para que los resultados se puedan importar a Excel.
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Out-GridView
Deshabilitar cuentas inactivas
Una vez que tenga el conjunto de resultados que está buscando, todo lo que necesita hacer es canalizarlos al cmdlet Disable-ADAccount como se muestra aquí para deshabilitar las cuentas:
Search-ADAccount –UsersOnly –AccountInactive –TimeSpan $timespan | Disable-ADAccount
Netwrix Auditor incluye la capacidad de detectar y deshabilitar cuentas de usuario inactivas en todas las versiones compatibles de Windows, y los resultados se integran en la base de datos, las funciones de informes y notificaciones del producto para que no sea necesario ejecutar y mantener scripts adicionales por separado. Netwrix Auditor puede deshabilitar cuentas inactivas, establecer una contraseña aleatoria, mover cuentas a una Unidad Organizativa (OU) designada o eliminar las cuentas.
Ahora es el momento de dejar tu opinión en la encuesta a continuación. ¡Recuerda que solo hay una respuesta correcta!
Compartir en
Aprende más
Acerca del autor
Russell Smith
Consultor de TI
Consultor de TI y autor especializado en tecnologías de gestión y seguridad. Russell tiene más de 15 años de experiencia en TI, ha escrito un libro sobre seguridad en Windows y ha coescrito un texto para la serie de Cursos Académicos Oficiales de Microsoft (MOAC).
Aprende más sobre este tema
Gestión de configuración para el control seguro de Endpoint
Leyes de Privacidad de Datos por Estado: Diferentes Enfoques para la Protección de la Privacidad
Ejemplo de Análisis de Riesgos: Cómo Evaluar los Riesgos
El Triángulo de la CIA y su Aplicación en el Mundo Real
¿Qué es la gestión de registros electrónicos?