Búsqueda de sitios web

Eliminar usuarios de Azure AD con Microsoft Graph PowerShell


Cuando elimina una cuenta de usuario de Azure AD, permanecerá en la papelera de reciclaje durante 30 días. Después de estos 30 días, Azure AD elimina automáticamente la cuenta de usuario. Le mostraremos cómo eliminar y eliminar permanentemente usuarios de Azure AD con los cmdlets Remove-MgUser y Remove-MgDirectoryDeletedItem. En este artículo, aprenderá cómo eliminar usuarios de Azure AD con Microsoft Graph PowerShell.

Remove-AzureADUser y Remove-MsolUser están en desuso

Microsoft anunció que los módulos Azure AD, Azure AD Preview y MS Online PowerShell quedarán obsoletos el 30 de marzo de 2024. Es necesario reemplazar Remove-AzureADUser y Remove-MsolUser . cmdlets con los nuevos cmdlets de Microsoft Graph PowerShell.

Le mostraremos cómo eliminar usuarios de Azure AD con Microsoft Graph PowerShell:

  1. Eliminar (eliminar temporalmente) una cuenta de usuario de Azure AD a la papelera de reciclaje
  2. Eliminar permanentemente (eliminar definitivamente) una cuenta de usuario de Azure AD de la papelera de reciclaje

Administre usuarios de Azure AD con Microsoft Graph PowerShell

Creamos artículos específicos para administrar usuarios de Azure AD con Microsoft Graph PowerShell:

  • Exportar usuarios de Azure AD con Microsoft Graph PowerShell
  • Eliminar usuario de Azure AD con Microsoft Graph PowerShell (este artículo)
  • Restaurar usuario de Azure AD con Microsoft Graph PowerShell
  • Actualice el usuario de Azure AD con Microsoft Graph PowerShell

Conéctese a Microsoft Graph PowerShell

Antes de comenzar, debe instalar el módulo Microsoft Graph PowerShell, incluido el módulo Microsoft Graph Beta.

Ejecute el siguiente comando para instalar el módulo Microsoft Graph.

Install-Module Microsoft.Graph -Force
Install-Module Microsoft.Graph.Beta -AllowClobber -Force

También debe conectarse a MS Graph con los permisos siguientes.

Connect-MgGraph -Scopes "User.Read.All", "User.ReadWrite.All", "Directory.AccessAsUser.All", "Directory.ReadWrite.All"

Ahora ya está todo listo para utilizar los comandos de Microsoft Graph PowerShell.

Lista de exportación masiva de usuarios de Azure AD eliminados temporalmente a CSV

Puede obtener una lista de todos los usuarios eliminados de Azure AD en la papelera de reciclaje. La siguiente secuencia de comandos mostrará la lista en una vista de cuadrícula y guardará un archivo CSV en la carpeta temp. Cree una carpeta temp en su unidad (C:) si no tiene una.

Ejecute el siguiente script de PowerShell para exportar de forma masiva una lista de usuarios de Azure AD a un archivo CSV.

# Retrieve deleted directory items
$DeletedItems = Get-MgDirectoryDeletedItem -DirectoryObjectId Microsoft.Graph.User -Property 'Id', 'displayName', 'deletedDateTime', 'userType'

# Check if there are no deleted accounts
if ($DeletedItems.AdditionalProperties['value'].count -eq 0) {
    Write-Host "No deleted accounts found - exiting"
}
else {
    # Create an array to store the report
    $Report = @()

    # Loop through the deleted items
    foreach ($Item in $DeletedItems.AdditionalProperties['value']) {
        $DeletedDate = Get-Date($Item['deletedDateTime'])
        $DaysSinceDeletion = (New-TimeSpan $DeletedDate).Days

        # Create a custom object for each item and add it to the report
        $ReportLine = [PSCustomObject]@{
            UserId                = $Item['id']
            Name                  = $Item['displayName']
            Deleted               = $DeletedDate
            'Days Since Deletion' = $DaysSinceDeletion
            Type                  = $Item['userType']
        }
        $Report += $ReportLine
    }

    # Sort and export the report by 'Days Since Deletion'
    $Report | Sort-Object 'Days Since Deletion' | select UserId, Name, Deleted, 'Days Since Deletion' | Out-GridView
    $Report | Sort-Object 'Days Since Deletion' | Export-CSV -Encoding UTF8 -NoTypeInformation "C:\temp\AzureDeletedUsers.csv"
}

Out-GridView aparece una vez finalizado el script.

Encontrará el archivo CSV en la carpeta C:\temp. Abra el archivo CSV con una aplicación como Microsoft Excel para ver los resultados.

Eliminación temporal de cuenta de usuario de Azure AD

Siempre puede eliminar un usuario de Azure AD, pero esta cuenta se trasladará a la papelera de reciclaje. El usuario eliminado permanecerá en la papelera de reciclaje de Azure AD durante 30 días. Le mostraremos cómo eliminar cualquier cuenta de usuario de Azure AD mediante tres métodos:

  • Eliminación temporal de una única cuenta de usuario de Azure AD
  • Eliminación temporal de varios usuarios de Azure AD con CSV
  • Eliminación temporal masiva de todos los usuarios de Azure AD

Eliminar-MgUser usuario de Azure AD

Para eliminar temporalmente una cuenta de usuario de Azure AD, use el cmdlet Remove-MgUser con Microsoft Graph PowerShell. En nuestro ejemplo, queremos eliminar la cuenta de usuario Megan.Jones@m365info.com.

Ejecute el siguiente ejemplo de comando de PowerShell para eliminar la cuenta de usuario.

Remove-MgUser -UserId "Megan.Jones@m365info.com"

También puede utilizar el ID de usuario de la cuenta.

Remove-MgUser -UserId "2b8f4e12-46f1-45ef-bcac-0d5ab84c819c"

No verá una salida de PowerShell. Eliminará la cuenta de usuario a la papelera de reciclaje, donde permanecerá durante 30 días.

Eliminación temporal de varias cuentas de CSV

Puede eliminar temporalmente varios usuarios de Azure AD con un archivo CSV.

Cree un único archivo CSV con Bloc de notas o Microsoft Excel y escriba los siguientes datos:

  1. Escriba UserPrincipalName en la parte superior
  2. Enumerar los usuarios de Azure AD

Vea el siguiente ejemplo de archivo CSV.

  1. Crea la carpeta temp si aún no la tienes en la unidad (C:)
  2. Nombra el archivo Remove.csv
  3. Guardar como tipo CSV (delimitado por comas)(*.csv)
  4. Haga clic en Guardar

  1. Ejecute el siguiente script de PowerShell
$users = Import-Csv -Path "C:\temp\Remove.csv"

foreach ($user in $users) {
    $userPrincipalName = $user.UserPrincipalName
    $userExists = $null

    try {
        # Check if the user exists using the Microsoft Graph API
        $userExists = Get-MgUser -UserId $userPrincipalName -ErrorAction Stop

        # If the user exists, attempt to remove them
        Remove-MgUser -UserId $userPrincipalName -ErrorAction Stop #-WhatIf

        Write-Host "Account $userPrincipalName has been deleted." -ForegroundColor Green
    }
    catch {
        if ($userExists -eq $null) {
            # User doesn't exist
            Write-Host "Account $userPrincipalName not found in Azure AD users." -ForegroundColor Yellow
        }
        else {
            # Error occurred during removal
            Write-Host "Account $userPrincipalName couldn't be deleted." -ForegroundColor Cyan
        }
    }
}

La salida de PowerShell muestra el siguiente resultado.

Account Chris.Lucas@m365info.com has been deleted.
Account George.Wilson@m365info.com has been deleted.
Account Ken.Walker@m365info.com has been deleted.
Account Laura.Terry@m365info.com has been deleted.
Account Unknown@m365info.com not found in Azure AD users.

Eliminará las cuentas de Azure AD del archivo CSV si existen en su inquilino de Azure.

Eliminación temporal masiva de todos los usuarios de Azure AD

Puede eliminar temporalmente a todos los usuarios de Azure AD, lo que los eliminará a la papelera de reciclaje.

Ejecute el siguiente script de PowerShell.

$users = Get-MgUser -All

foreach ($user in $users) {
    $displayName = $user.DisplayName
    Remove-MgUser -UserId $user.UserPrincipalName #-WhatIf
    Write-Host "Deleted user: $($displayName)" -ForegroundColor Green
}

El script de PowerShell eliminará automáticamente a todos los usuarios de Azure AD. Recibirá el siguiente error porque el administrador no puede eliminarse a sí mismo.

Error: Remove-MgUser: el principal que realiza esta solicitud no puede eliminarse a sí mismo.

Eliminación definitiva de cuenta de usuario de Azure AD eliminada

Solo puede eliminar de forma definitiva un usuario de Azure AD si la cuenta todavía está en la papelera de reciclaje. De esta manera, eliminará permanentemente una cuenta de Azure AD. Le mostraremos cómo eliminar por completo una cuenta de usuario de Azure AD ya eliminada mediante tres métodos:

  • Eliminación definitiva de una única cuenta de usuario de Azure AD
  • Eliminación completa de varios usuarios de Azure AD con CSV
  • Eliminación masiva de todos los usuarios de Azure AD

Remove-MgDirectoryDeletedItem Usuario de Azure AD

Cuando ya eliminaste una cuenta de usuario, no tienes que esperar 30 días para que se elimine. Puede forzar la eliminación definitiva de una cuenta de usuario de Azure AD de la papelera de reciclaje. Debemos usar el cmdlet Remove-MgDirectoryDeletedItem para eliminar una cuenta de Azure AD eliminada recientemente.

Nota: Una vez que eliminas por completo a un usuario, no hay oportunidad de restaurarlo ni ningún dato asociado con ese usuario.

En nuestro ejemplo, queremos eliminar la cuenta de usuario Jill.Bates@m365info.com de forma permanente. Aquí nuevamente, debe utilizar el número de ID de objeto.

Ejecute el siguiente ejemplo de comando de PowerShell.

Remove-MgDirectoryDeletedItem -DirectoryObjectId "a9532b30-4edb-4b66-a3b0-6ac972a6065b"

No obtendrá un resultado en PowerShell porque elimina automáticamente la cuenta de usuario de forma permanente.

Eliminación completa de varios usuarios de Azure AD de CSV

Para eliminar por completo algunos usuarios de Azure AD de la papelera de reciclaje, debe crear un archivo CSV.

Nota: Cuando elimina por completo una cuenta de usuario, debe escribir el ID con guiones (-) o el script de PowerShell no funcionará.

Cree un archivo CSV con 2 columnas:

  1. Escriba ID en la parte superior de la columna A.
  2. Escriba UserPrincipalName en la parte superior de la columna B.
  3. Enumere el número de identificación, incluidos guiones (-) de cada usuario.
  4. Enumerar el UPN para cada usuario

Vea el siguiente ejemplo de archivo CSV.

  1. Crea la carpeta temp si aún no la tienes en la unidad (C:)
  2. Nombra el archivo Delete.csv
  3. Guardar como tipo CSV UTF-8 (delimitado por comas)(*.csv)
  4. Haga clic en Guardar

  1. Ejecute el siguiente script de PowerShell para eliminar de forma definitiva varios usuarios de Azure AD
# Retrieve deleted directory items
$DeletedItems = Get-MgDirectoryDeletedItem -DirectoryObjectId Microsoft.Graph.User -Property 'Id', 'displayName'

# Import the CSV file with user IDs
$UserIds = Import-Csv -Path "C:\temp\Delete.csv"

foreach ($UserId in $UserIds) {
    $Id = $UserId.ID

    # Check if the user ID exists in the deleted items
    $DeletedUser = $DeletedItems.AdditionalProperties['value'] | Where-Object { $_['id'] -eq $Id }

    if ($DeletedUser -ne $null) {
        # Hard delete the user by ID
        Remove-MgDirectoryDeletedItem -DirectoryObjectId $Id #-WhatIf
        Write-Host "Hard deleted user $($DeletedUser['displayName']) with ID: $Id" -ForegroundColor Red
    }
    else {
        Write-Host "User with ID $Id not found in deleted items." -ForegroundColor Yellow
    }
}

Write-Host "Hard deletion process completed." -ForegroundColor Cyan

El ejemplo del resultado de salida de PowerShell.

Hard deleted user Chris Lucas with ID: fa956d8c-87df-4cd4-ac2a-ac1f3d7cac8b
Hard deleted user Ken Walker with ID: 12eefbb2-e5f4-4eec-bd18-df7ca2f1ee6b
Hard deleted user Megan Jones with ID: 2b8f4e12-46f1-45ef-bcac-0d5ab84c819c
User with ID 954b27cf-8401-420b-bbd2-7f70903c0707 not found in deleted items.
Hard deletion process completed.

Eliminación masiva de todos los usuarios de Azure AD

Puede eliminar por completo a todos los usuarios de Azure AD de la papelera de reciclaje.

Nota: Esto eliminará permanentemente la cuenta de usuario y todos sus detalles. No puede restaurar usuarios de Azure AD después de esto porque se vaciará la papelera de reciclaje.

Ejecute el script de PowerShell.

# Retrieve deleted directory items
$DeletedItems = Get-MgDirectoryDeletedItem -DirectoryObjectId Microsoft.Graph.User -Property 'Id', 'displayName'

# Check if there are no deleted accounts
if ($DeletedItems.AdditionalProperties['value'].count -eq 0) {
    Write-Host "No deleted accounts found in recycle bin." -ForegroundColor Cyan
}
else {
    # Hard delete removed users
    foreach ($Item in $DeletedItems.AdditionalProperties['value']) {
        # Hard delete the user by ID
        Remove-MgDirectoryDeletedItem -DirectoryObjectId $Item['id'] #-WhatIf
        Write-Host "Hard deleted user $($Item['displayName'])" -ForegroundColor Green
    }
    
    Write-Host "Hard delete removal process completed." -ForegroundColor Cyan
}

Eliminará por completo a todos los usuarios de la papelera de reciclaje de Azure AD. Vea el siguiente ejemplo de resultado de salida de PowerShell.

Hard deleted user George Wilson
Hard deleted user Jill Bates
Hard deleted user Julia Wood
Hard deleted user Kelly Test
Hard deleted Laura Terry
Hard deleted user New User
Hard deleted user Stephen Hunter
Hard delete removal process completed.

Logró con éxito la eliminación temporal y definitiva de usuarios de Azure AD con MS Graph PowerShell.

Leer más: Administrar la papelera de reciclaje de Office 365 con PowerShell »

Conclusión

Aprendió a eliminar usuarios de Azure AD con Microsoft Graph PowerShell. Utilice el cmdlet Remove-MgUser para eliminar una o varias cuentas de usuario de Azure AD en la papelera de reciclaje. Supongamos que desea eliminar permanentemente los usuarios de Azure AD de la papelera de reciclaje, use el cmdlet Remove-MgDirectoryDeletedItem.

Disfrutaste este artículo? También te puede gustar Forzar la eliminación del buzón de correo de Microsoft 365 con PowerShell. No olvides seguirnos y compartir este artículo.

Artículos relacionados