¿Cómo eliminar un usuario de AD usando PowerShell? – 2xsoftware

¿Está cansado de eliminar usuarios manualmente de la interfaz de Usuarios y equipos de Active Directory (ADUC)? ¿O se enfrenta al desafío de procesar solicitudes de eliminación masiva de usuarios de AD? PowerShell puede ayudarlo a simplificar este proceso. En este tutorial, veremos el uso de PowerShell para eliminar usuarios de AD.

Requisitos

  • Controlador de dominio de Active Directory de Windows. Este tutorial usa Windows Server 2019 y el dominio es theitbros.com.
  • Una cuenta con acceso suficiente para eliminar usuarios en Active Directory.
  • Windows PowerShell 5.1 o posterior.
  • Un editor de código. En esta publicación usaremos código de estudio visual.
  • Si está utilizando una computadora de administración (no el DC), asegúrese de instalar la Herramienta de administración remota del servidor (RSAT).

El cmdlet Remove-ADUser

El Quitar ADUser cmdlet es un cmdlet esencial en PowerShell que permite a los administradores eliminar cuentas de usuario de Active Directory. Este cmdlet requiere que el módulo PowerShell de Active Directory esté instalado y se ejecute en un controlador de dominio o en una máquina que tenga instalado el Centro de administración de Active Directory.

La sintaxis para el Quitar ADUser cmdlet es sencillo. Aquí hay un ejemplo:

Remove-ADUser -Identity "JohnDoe"

Este cmdlet toma varios parámetros, como -Identidad, que especifica la cuenta de usuario que se eliminará. Los valores de identidad aceptables son:

  • Un nombre distinguido
  • UN GUID (objetoGUID)
  • Un identificador de seguridad (objectSid)
  • Un nombre de cuenta SAM (sAMAccountName)

También puede utilizar otros parámetros como -Confirmar y -Y si para confirmar la eliminación o para obtener una vista previa de los cambios que se realizarán.

En algunas partes de este tutorial, también usaremos el Buscar-ADAcuenta y Obtener ADAccount cmdlets. El Buscar-ADAcuenta cmdlet se usa para buscar cuentas de usuario que cumplan ciertos criterios, como cuentas que han estado inactivas durante un período específico. El Obtener ADAccount cmdlet se utiliza para recuperar cuentas de usuario de Active Directory.

El uso de estos cmdlets en combinación con Quitar ADUser puede hacer que el proceso de eliminación de cuentas de usuario de Active Directory sea mucho más eficiente y sencillo.

Eliminar un solo usuario de AD

Para eliminar un solo usuario de AD, puede utilizar el Quitar ADUser cmdlet seguido del -Identidad parámetro, que especifica la cuenta de usuario que se eliminará. Aquí hay un ejemplo:

Remove-ADUser -Identity sdavis

Este comando eliminará la cuenta de usuario con el nombre de usuario “sdavis” del Directorio Activo.

powershell eliminar usuario de anuncios

El comportamiento predeterminado de Quitar ADUser es pedir confirmación, como se puede ver en el ejemplo anterior. Pero también puedes usar el -Confirmar:$falso parámetro para suprimir el aviso y forzar la eliminación de la cuenta de usuario.

Remove-ADUser -Identity sdavis -Confirm:$false

El siguiente ejemplo agrega el -Verboso cambia para activar los comentarios detallados.

eliminar anuncio usuario powershell

Si desea eliminar una cuenta de usuario en función de un atributo específico, como la dirección de correo electrónico, puede utilizar el Obtener ADUser cmdlet para recuperar la cuenta de usuario y luego canalizarla al Quitar ADUser cmdlet. Aquí hay un ejemplo:

Get-ADUser -Filter {UserPrincipalName -eq "[email protected]"} | Remove-ADUser

Este comando recuperará la cuenta de usuario con el UPN “[email protected]” y luego eliminarlo de Active Directory.

powershell eliminar usuario de anuncios

Eliminar múltiples usuarios de una matriz

Para eliminar varios usuarios donde la lista de usuarios está en un objeto de matriz, use el siguiente comando:

$users = "username1","username2","username3" 
foreach ($user in $users) {
Remove-ADUser -Identity $user
}

Reemplazar nombre de usuario1, nombre de usuario2y nombre de usuario3 con los nombres de usuario de las cuentas de usuario que desea eliminar.

Por ejemplo, eliminemos tres usuarios: Emiller, mmartinezy johnson.

$users = "emiller", "mmartinez", "tjohnson" 
foreach ($user in $users) {
Remove-ADUser -Identity $user -Confirm:$false
}

Si la eliminación es exitosa, no habrá salida en la pantalla.

powershell eliminar usuario

Si hay una gran cantidad de usuarios para eliminar, tendrá más sentido ponerlos en una lista y hacer que PowerShell lea esa lista. Entonces, como alternativa a escribir cada nombre de usuario, podemos importarlos desde un archivo de texto.

Por ejemplo, supongamos que tenemos una lista de usuarios en un archivo llamado UsuariosParaEliminar.txt.

eliminar powershell de la cuenta publicitaria

Este código leerá cada línea del UsuariosParaEliminar.txt archivo, que debe contener una lista de nombres de usuario, y eliminar cada cuenta de usuario.

$users = Get-Content .UsersToDelete.txt 
foreach ($user in $users) {
Remove-ADUser -Identity $user -Confirm:$false
}

eliminar powershell del usuario del anuncio

Eliminar cuentas de usuario de AD deshabilitadas

Para eliminar cuentas de usuario deshabilitadas en Active Directory usando PowerShell, puede usar el Obtener ADUser y Quitar ADUser cmdlets junto con el -Filtrar parámetro para buscar y eliminar las cuentas apropiadas.

En primer lugar, puede utilizar el Obtener ADUser cmdlet con el -Filtrar parámetro para recuperar una lista de usuarios deshabilitados. Por ejemplo, para recuperar todas las cuentas de usuario deshabilitadas, puede usar el siguiente comando:

$disabledUsers = Get-ADUser -Properties isCriticalSystemObject ` 
-Filter { Enabled -eq $false } | `
Where-Object { $_.isCriticalSystemObject -ne $true }
$disabledUsers | Remove-ADUser -Confirm:$false -Verbose

Este código recupera las cuentas de usuario de AD deshabilitadas que no están marcadas como objetos críticos del sistema y luego las elimina de Active Directory.

Así es como funciona:

  • $disabledUsers = Get-ADUser -Properties isCriticalSystemObject -Filter { Enabled -eq $false }: Esta línea utiliza el Obtener ADUser cmdlet para recuperar una lista de cuentas de usuario deshabilitadas. El Propiedades El parámetro se utiliza para incluir el esCriticalSystemObject atributo, que se utiliza más tarde para filtrar cualquier objeto crítico del sistema. El Filtrar El parámetro se utiliza para recuperar solo los usuarios deshabilitados.
  • | Where-Object { $_.isCriticalSystemObject -ne $true }: Esta línea utiliza el Donde-Objeto cmdlet para filtrar cualquier objeto crítico del sistema de la lista de usuarios deshabilitados. El ps La variable representa el objeto actual en la canalización, que es una cuenta de usuario. El nordeste operador se utiliza para excluir cualquier cuenta de usuario donde el esCriticalSystemObject el atributo es $verdadero.
  • $usuarios deshabilitados | Remove-ADUser -Confirm:$false -Detallado: esta línea canaliza la lista de cuentas de usuario deshabilitadas al Quitar ADUser cmdlet para eliminarlos de Active Directory. El Confirmar el parámetro se establece en $falso para deshabilitar las solicitudes de confirmación, y el Verboso El parámetro se utiliza para mostrar la salida detallada durante el proceso de eliminación.

En general, este código puede ser útil para eliminar cuentas de usuario deshabilitadas de Active Directory y, al mismo tiempo, excluir cualquier objeto crítico del sistema que no deba eliminarse.

powershell eliminar cuenta de publicidad

Como alternativa, puede utilizar el Buscar-ADAcuenta cmdlet para encontrar usuarios deshabilitados y luego canalizar la salida al Quitar ADUser cmdlet:

$disabledUsers = Search-ADAccount -AccountDisabled | Where-Object { $_.ObjectClass -eq 'user' } 
$disabledUsers | Remove-ADUser

Este comando encontrará todas las cuentas de usuario deshabilitadas usando el Buscar-ADAcuenta cmdlet y filtre los resultados para incluir solo objetos de usuario. Luego, canalizará la lista de cuentas de usuario deshabilitadas al Quitar ADUser cmdlet para eliminarlos de Active Directory.

Eliminar cuentas de usuario obsoletas de AD

Las cuentas de usuario obsoletas de AD se refieren a cuentas de usuario que no se han utilizado durante un período específico. Estas cuentas pueden representar un riesgo de seguridad para su red, ya que pueden ser vulnerables al acceso no autorizado. Por lo tanto, es esencial identificar y eliminar dichas cuentas con regularidad.

En esta sección, mostraremos ejemplos de cómo obtener usuarios obsoletos de AD y luego eliminarlos.

Para obtener usuarios obsoletos de AD o usuarios de AD que no hayan iniciado sesión en el dominio en 90 días, use el siguiente código:

$staleUsers = Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 | ` 
Where-Object { $_.ObjectClass -eq 'user' }

foreach ($user in $staleUsers) {
try {
Remove-ADUser -Identity $user -ErrorAction Stop -Confirm:$false
"Deleted user $user" | Out-Default
}
catch {
$_.Exception.Message | Out-Default
}
}

Este código elimina todas las cuentas de usuario inactivas que han estado inactivas durante 90 días o más utilizando el Buscar-ADAcuenta cmdlet y el Quitar ADUser cmdlet.

Así es como funciona:

$staleUsers = Search-ADAccount -AccountInactive -TimeSpan 90.00:00:00 | ` 
Where-Object { $_.ObjectClass -eq 'user' }

Esta línea utiliza el Buscar-ADAcuenta cmdlet para buscar todas las cuentas de usuario inactivas que han estado inactivas durante 90 días o más (-Intervalo de tiempo 90.00:00:00). El Donde-Objeto cmdlet se usa para filtrar los resultados que no son cuentas de usuario.

foreach ($user in $staleUsers) {

Esta línea inicia un para cada bucle para iterar a través de cada una de las cuentas de usuario obsoletas encontradas en el paso anterior.

try { 
Remove-ADUser -Identity $user -ErrorAction Stop -Confirm:$false
"Deleted user $user" | Out-Default
}
catch {
$_.Exception.Message | Out-Default
}

Este bloque de código intenta eliminar a cada usuario usando el Quitar ADUser cmdlet, que elimina la cuenta de usuario de Active Directory. Si el usuario no se puede eliminar por alguna razón, el mensaje de error es capturado por el atrapar bloquear e imprimir en la consola usando el Fuera de defecto cmdlet.

eliminar powershell del usuario del directorio activo

Pero, encontrar usuarios obsoletos usando el Buscar-ADAcuenta cmdlet no filtra los objetos críticos del sistema. Por eso sería mejor usar Obtener ADUser con el -Filtrar parámetro en su lugar. Aquí hay un ejemplo.

$staleDays = (Get-Date).AddDays(-90) 
$staleUsers = Get-ADUser -Properties LastLogonDate, isCriticalSystemObject -Filter { LastLogonDate -lt $staleDays } | Where-Object { $_.isCriticalSystemObject -ne $true }
$staleUsers | Remove-ADUser -Confirm:$false -Verbose

Nota. Consulte nuestra guía sobre cómo encontrar la última hora de inicio de sesión del usuario de Active Directory.

Este código elimina las cuentas de usuario obsoletas de AD, que son usuarios que no han iniciado sesión en el dominio durante 90 días o más. Así es como funciona:

  • La primera línea de código crea una variable llamada $staleDays y lo establece en 90 días en el pasado. Esto lo hace usando el AddDays metodo de la Fecha y hora objeto devuelto por Obtener la fecha. Esta es la cantidad de días que un usuario no debe haber iniciado sesión para que se considere obsoleto.
  • La segunda línea de código utiliza el Obtener ADUser cmdlet para obtener todos los objetos de usuario de AD que tienen un LastLogonDate propiedad que es menor que $staleDays. Esto significa que no han iniciado sesión en 90 días o más.
  • La tercera línea de código canaliza el $usuariosinactivos variable a la Donde-Objeto cmdlet, que filtra cualquier objeto que tenga el esCriticalSystemObject propiedad establecida en $verdadero. Esto se debe a que, por lo general, no desea eliminar cuentas críticas del sistema.
  • Finalmente, la lista filtrada de $usuarios obsoletos se canaliza a la Quitar ADUser cmdlet con el Confirmar: $falso y Verboso parámetros Esto eliminará todos los usuarios obsoletos de AD sin solicitar confirmación y proporcionará un resultado detallado del proceso de eliminación.

También puede mejorar este código para limitar el alcance de la búsqueda solo a unidades organizativas específicas de Active Directory.

Es importante tener en cuenta que eliminar cuentas de usuario puede tener graves consecuencias, especialmente si pertenecen a usuarios activos. Antes de eliminar cuentas de usuario, es esencial asegurarse de que ya no se necesiten. También puede considerar deshabilitar las cuentas primero y luego eliminarlas después de un período específico para asegurarse de que pueda restaurarlas si es necesario.

Conclusión

El uso de cmdlets de PowerShell puede simplificar significativamente el proceso de eliminación de usuarios de Active Directory. Hemos mostrado ejemplos de cómo eliminar un solo usuario o varios usuarios de un archivo de texto o una matriz y cómo eliminar cuentas de usuario obsoletas y deshabilitadas. También proporcionamos un script que puede ayudar a automatizar el proceso de eliminación de varios usuarios.

Con el conocimiento que ha adquirido en este tutorial, ahora puede eliminar fácilmente usuarios de Active Directory sin tener que navegar a través de la consola Usuarios y equipos de Active Directory (ADUC) manualmente. Esto puede ahorrarle mucho tiempo y esfuerzo, especialmente cuando se trata de grandes cuentas de usuario.

Lo alentamos a que experimente con los cmdlets y el script que proporcionamos en este tutorial y vea cómo puede automatizar aún más el proceso de eliminación de usuarios en su entorno. Con PowerShell, las posibilidades son infinitas.

¿Entonces, Qué esperas? ¡Pruebe estos cmdlets de PowerShell y el script, y haga que su proceso de eliminación de usuarios de AD sea más eficiente hoy!

Valora este artculo post

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *