• Home
  • PowerShell
  • Come individuare gli utenti disabilitati in Active Directory utilizzando PowerShell

Come individuare gli utenti disabilitati in Active Directory utilizzando PowerShell

Individuare e gestire gli account utente disabilitati in Active Directory è un'attività amministrativa cruciale per mantenere la sicurezza e la conformità. Gli account disabilitati possono accumularsi nel tempo, creando problemi di sicurezza e ingombrando la directory. Il cmdlet Get-ADUser per gli account disabilitati in PowerShell offre potenti funzionalità per identificare, filtrare ed esportare in modo efficiente gli account utente disabilitati. Sia che si tratti di effettuare controlli di sicurezza, di ripulire account inattivi o di utilizzare PowerShell per generare un elenco di utenti disabilitati per la creazione di report sulla conformità, questa guida illustra i metodi per interrogare gli utenti disabilitati nell'intero dominio o in unità organizzative specifiche.

Quando è necessario esportare gli utenti disabilitati in un file CSV per la creazione di report o il controllo, il cmdlet Get-ADUser con il parametro enabled false offre opzioni di filtro flessibili. Questa guida completa mostra come utilizzare il filtro Get-ADUser per disabilitare gli account ed esportarli in diversi formati.

Windows PowerShell

Metodo 1: Passaggi per ottenere il report degli utenti disabilitati utilizzando la cmdlet Get-ADUser di PowerShell:

  1. Identifica il dominio da cui desideri recuperare il report.
  2. Identifica gli attributi LDAP necessari per la query PowerShell per ottenere gli utenti disabilitati.
  3. Identifica il DC principale per recuperare il report.
  4. Compila lo script Get-ADUser con il filtro abilitato falso.
  5. Eseguilo in Windows PowerShell.
  6. Il report verrà esportato nel formato richiesto.
  7. Per ottenere il report in un formato diverso, modifica lo script come necessario.
import-module activedirectory
$OutFile = 'C:\Scripts\DisabledUsers.csv'
# your output file
$filter = {Enabled -eq $false}
Get-ADUser -Filter $filter
| foreach {Add-Content -path
$OutFile "$($_.SamAccountName),
$($_.distinguishedName)"}

Metodo 2: Passaggi per ottenere gli utenti disabilitati utilizzando la cmdlet Search-ADAccount

  1. Apri PowerShell come amministratore.
  2. Importa il modulo Active Directory.
  3. Esegui Search-ADAccount con il parametro -AccountDisabled.
  4. Filtro solo per gli utenti (esclude gli account dei computer).
  5. Se necessario, aggiungi altri filtri come il periodo di inattività.
  6. Esporta i risultati nel formato preferito.

Per importare il modulo Active Directory:

Import-Module ActiveDirectory

Per ottenere tutti gli account utente disabilitati:

Search-ADAccount -AccountDisabled -UsersOnly |
Select-Object Name, SamAccountName, DistinguishedName, LastLogonDate |
Export-CSV "C:\Scripts\DisabledUsers_SearchADAccount.csv" -NoTypeInformation
ADManager Plus

Individuare gli utenti disabilitati in ADManager Plus:

  1. Vai su Report > Report sullo stato degli account > Utenti disabilitati.
  2. Seleziona il dominio e l'UO richiesti per filtrare gli utenti.
  3. Fare clic su Genera.
  4. Una volta generato il report, fare clic su Esporta con nome per scaricarlo in HTML, CSV, XLS o PDF.
  5. È inoltre possibile intraprendere azioni istantanee come l'eliminazione o l'abilitazione degli utenti dal report.

Esempi di casi d'uso e script

Esempio 1: Ottenere tutti gli utenti disabilitati nel dominio

Riprendi un elenco completo utilizzando il filtro Get-ADUser disabilitato su tutto il dominio Active Directory.

Get-ADUser -Filter {Enabled -eq $false} |
Select-Object Name, SamAccountName, DistinguishedName

Esempio 2: Individua gli utenti disabilitati con l'indirizzo e-mail del manager

Utilizzo del cmdlet Get-ADUser disabilitato con proprietà aggiuntive per riprendere gli utenti disabilitati insieme all'indirizzo e-mail del loro manager a scopo di notifica.

$disabledUsers = Get-ADUser -Filter {Enabled -eq $false} -Properties Manager, EmailAddress, Department
$report = foreach ($user in $disabledUsers) {
$managerDN = $user.Manager
if ($managerDN) {
$manager = Get-ADUser $managerDN -Properties EmailAddress
[PSCustomObject]@{
UserName = $user.Name
UserEmail = $user.EmailAddress
Department = $user.Department
ManagerName = $manager.Name
ManagerEmail = $manager.EmailAddress
}
}
}

$report | Export-CSV "C:\Reports\DisabledUsers_WithManagers.csv" -NoTypeInformation

Esempio 3: Esportazione degli utenti disabilitati di recente (ultimi 30 giorni)

Identifica gli account disabilitati entro un determinato periodo di tempo a fini di controllo.

$30DaysAgo = (Get-Date).AddDays(-30)
Get-ADUser -Filter {Enabled -eq $false} -Properties WhenChanged, LastLogonDate, Description |
Where-Object {$_.WhenChanged -gt $30DaysAgo} |
Select Name, SamAccountName, WhenChanged, LastLogonDate, Description |
Export-CSV "C:\Reports\RecentlyDisabled.csv" -NoTypeInformation

Esempio 4: PowerShell esporta utenti disabilitati in file CSV da OU specifiche.

Destinazione di unità organizzative specifiche durante l'utilizzo delle query Get-ADUser disabilitate.

# Get-ADUser enabled false from specific OU
Get-ADUser -Filter {Enabled -eq $false} -SearchBase "OU=Sales,DC=domain,DC=com" -Properties * |
Select-Object Name, Title, Department, LastLogonDate |
Export-CSV "C:\Reports\SalesDisabledUsers.csv" -NoTypeInformation

Esempio 5: Individua quando un account utente è stato disabilitato (data di disabilitazione)

Active Directory non dispone di un attributo nativo "DisabledDate", ma è possibile tracciare quando gli account sono stati disabilitati utilizzando questi metodi:

Metodo 1: Utilizzo dell'attributo WhenChanged

Per ottenere account disabilitati dall'ADUser con data di disabilitazione approssimativa:

Get-ADUser -Filter {Enabled -eq $false} -Properties WhenChanged |
Select-Object Name, SamAccountName,
@{Name='ApproxDisableDate';Expression={$_.WhenChanged}},
@{Name='DaysSinceDisabled';Expression={(New-TimeSpan -Start $_.WhenChanged -End (Get-Date)).Days}} |
Export-CSV "C:\Reports\DisabledUsers_WithDates.csv" -NoTypeInformation

Metodo 2: Individuare gli utenti disabilitati di recente (ultimi 7, 30 o 90 giorni)

PowerShell consente di ottenere gli utenti disabilitati entro un periodo di tempo specifico:

function Get-RecentlyDisabledUsers {
param([int]$DaysAgo = 30)

$cutoffDate = (Get-Date).AddDays(-$DaysAgo)

Get-ADUser -Filter {Enabled -eq $false} -Properties WhenChanged, LastLogonDate |
Where-Object {$_.WhenChanged -ge $cutoffDate} |
Select-Object Name, SamAccountName,
@{Name='ApproxDisableDate';Expression={$_.WhenChanged}},
@{Name='DaysAgo';Expression={(New-TimeSpan -Start $_.WhenChanged -End (Get-Date)).Days}},
LastLogonDate |
Sort-Object WhenChanged -Descending
}

Per ottenere gli utenti disabilitati negli ultimi 30 giorni:

Get-RecentlyDisabledUsers -DaysAgo 30 |
Export-CSV "C:\Reports\RecentlyDisabled.csv" -NoTypeInformation

Esempio 6: Esportazione dell'elenco degli utenti disabilitati in un file CSV

L'esportazione degli utenti disabilitati in formato CSV è essenziale per la creazione di report, controlli e conformità.

Get-ADUser -Filter {Enabled -eq $false} -Properties DisplayName, EmailAddress, Department, LastLogonDate |
Select-Object Name, SamAccountName, DisplayName, EmailAddress, Department, LastLogonDate |
Export-CSV "C:\Reports\DisabledUsers.csv" -NoTypeInformation
Write-Host "Export complete. File salvato in C:\Reports\DisabledUsers.csv" -ForegroundColor Green

Parametri supportati

Parametri Descrizione
-Filtro Specifica i criteri utilizzando il linguaggio di espressione di PowerShell
-SearchBase Specifica l'UO o il contenitore da ricercare
-SearchScope Definisce la profondità di ricerca (Base, Un livello, Sottoalbero)
-Properties Specifica gli attributi aggiuntivi da recuperare
-LDAPFilter Utilizza la sintassi della query LDAP per il filtro
-Server Specifica il controller di dominio da interrogare

Procedura consigliata per gestire gli utenti disabilitati in Active Directory

  1. Disabilitazione degli account immediatamente dopo aver finito: previeni gli accessi non autorizzati disabilitando gli account non appena i dipendenti lasciano il lavoro o il loro account viene eliminato.
  2. Rimozione da tutti i gruppi di sicurezza: gli utenti disabilitati che mantengono l'appartenenza a gruppi comportano rischi per la sicurezza se accidentalmente vengono riattivati.
  3. Reimpostazione della password sugli account disabilitati: modifica le password per evitare che gli account vengano riattivati in modo improprio.
  4. Sposta l'unità organizzativa dedicata agli utenti disabilitati: segregare gli account disabilitati per una migliore applicazione dei criteri di sicurezza.
  5. Esportazione di rapporti periodici sulla conformità: Generare rapporti mensili sugli utenti disabilitati per la revisione della gestione.

Limitazione dell'utilizzo di PowerShell per l'esportazione di utenti disabilitati

  • Complessità dello script: la creazione di report completi richiede una conoscenza avanzata di PowerShell e la combinazione di più cmdlet.
  • Problemi di prestazioni: i domini di grandi dimensioni con migliaia di account disabilitati possono causare un'esecuzione lenta o il timeout degli script.
  • Problemi di gestione degli errori: Gli script potrebbero fallire silenziosamente quando incontrano problemi di autorizzazione o dati malformati senza un'adeguata gestione degli errori.
  • Interfaccia utente con filtri limitati: combinazioni di filtri complesse richiedono un'attenta costruzione e test della sintassi.
  • Limitazioni del formato di esportazione: cambiare i formati di output o aggiungere formattazione visiva richiede moduli aggiuntivi di PowerShell.

Punti salienti dell'utilizzo di ADManager Plus per l'esportazione degli utenti disabilitati

  • Creazione immediata di report: Accedi a report precostituiti sugli utenti disabilitati con un solo clic, senza bisogno di scripting.
  • Visualizzazione del dashboard: Grafici interattivi che mostrano gli utenti disabilitati per reparto, UO o periodo di inattività.
  • Programmazione automatica: Impostare report ricorrenti con invio automatico di email agli stakeholder.
  • Operazioni alla rinfusa: Abilitare, disabilitare o eliminare più account direttamente dai risultati dei report.
  • Modelli di conformità: Creazione di report preconfigurati per i requisiti di conformità SOX, HIPAA e GDPR.

Ricevi rapporti completi sugli utenti disabilitati con ADManager Plus

Domande frequenti

Entrambi i comandi riprendono gli utenti disabilitati, ma funzionano in modo diverso:

Get-ADUser offre una maggiore flessibilità con filtri personalizzati e selezione delle proprietà:

Get-ADUser -Filter {Enabled -eq $false -and Department -eq "IT"} -Properties *

Search-ADAccount è ottimizzato per le query sullo stato degli account con opzioni predefinite:

Search-ADAccount -AccountDisabled -UsersOnly -AccountInactive -TimeSpan 90.00:00:00

Search-ADAccount è generalmente più veloce per le query sugli account disabilitati, mentre Get-ADUser offre un controllo più granulare su filtri e proprietà.