Magic Quadrant™ per la gestione degli accessi privilegiati 2025: Netwrix riconosciuta per il quarto anno consecutivo. Scarica il report.

Piattaforma
Centro risorseBlog
Come bloccare, sbloccare, abilitare e disabilitare account AD con PowerShell

Come bloccare, sbloccare, abilitare e disabilitare account AD con PowerShell

Jul 30, 2018

Gli strumenti di gestione GUI di Active Directory come Active Directory Users and Computers (ADUC), vanno bene per eseguire operazioni su singoli account. Ma quando è necessario gestire più account AD, PowerShell è uno strumento più flessibile. In questo post, vi mostrerò come utilizzare PowerShell per bloccare, sbloccare, abilitare e disabilitare singolarmente e in massa gli account utente e computer di AD utilizzando file delimitati da virgole.

Prima di poter eseguire i cmdlet di PowerShell di Active Directory, devi avere installato sul tuo computer il modulo di Active Directory per PowerShell. Se stai utilizzando Windows 10, scarica gli Strumenti di amministrazione remota del server (RSAT) per Windows 10 dal sito web di Microsoft here e poi installali. Quindi abilita la funzionalità del modulo AD PowerShell aprendo un prompt di PowerShell con privilegi di amministratore locale ed eseguendo il cmdlet Enable-WindowsOptionalFeature come mostrato qui:

      Enable-WindowsOptionalFeature -Online -FeatureName RSATClient-Roles-AD-Powershell
      

Facoltativamente, è possibile aggiornare anche i file di aiuto utilizzando il cmdlet Update-Help:

      Update-Help -Module ActiveDirectory -Verbose -Force
      

Assicurati di chiudere il prompt di PowerShell, poiché non avrai bisogno di privilegi elevati per altre operazioni. Le istruzioni seguenti possono essere eseguite nel contesto di sicurezza di qualsiasi utente che abbia i permessi per eseguire operazioni sugli account utente in Active Directory, come sbloccare account utente e abilitare e disabilitare account utente, computer e servizi.

Come trovare account di Active Directory bloccati

Non è possibile bloccare gli account di Active Directory utilizzando PowerShell o l'interfaccia grafica; in effetti, non ci sarebbe motivo di volerlo fare. Tuttavia, è possibile cercare gli account utente bloccati con l'aiuto del cmdlet Search-ADAccount. Qui collego i risultati del cmdlet Search-ADAccount al cmdlet Select-Object per visualizzare solo gli attributi Name e SamAccountName di ogni account bloccato:

      Search-ADAccount -LockedOut -UsersOnly | Select-Object Name, SamAccountName
      

Come sbloccare gli account Active Directory

Puoi sbloccare facilmente gli account utente utilizzando il cmdlet Unlock-ADAccount. Usa il parametro -Identity per specificare quale account sbloccare; puoi fornire il suo nome distinto, identificatore di sicurezza (SID), identificatore univoco globale (GUID) o nome dell'account Security Account Manager (SAM). Qui sto sbloccando l'account di RussellS:

      Unlock-ADAccount -Identity RussellS
      

Come abilitare gli account Active Directory

Se un oggetto account è stato disabilitato per qualsiasi motivo, puoi abilitarlo utilizzando il cmdlet Enable-ADAccount:

      Enable-ADAccount -Identity RussellS
      


Come disabilitare gli account di Active Directory

Analogamente, il cmdlet Disable-ADAccount viene utilizzato per disabilitare gli account AD:

Disable-ADAccount -Identity RussellS

Disabilitare gli utenti da un file CSV

È possibile anche disabilitare tutti gli account utente di Active Directory elencati in un file di testo delimitato da virgole (.csv). Il file deve contenere un'intestazione e poi un elenco di nomi utente, uno per ogni riga. Il mio file CSV ha solo una colonna (con l'intestazione “Nome”), quindi il mio file delimitato da virgole non ha virgole! Se il tuo file CSV ha più di una colonna, le colonne aggiuntive verranno semplicemente ignorate dallo script.

Image

Inizio importando il contenuto del file CSV come un oggetto ($users), e poi utilizzo un ciclo ForEach per disabilitare l'utente su ogni riga del file di testo. Ecco lo script PowerShell:

      $users=Import-CSV c:tempusers.csv
ForEach ($user in $users)
{
     Disable-ADAccount -Identity $($user.name)
}
      

Gestisci gli account AD con Netwrix Directory Manager

Disabilitare gli account computer da un file CSV

Lo script PowerShell per disabilitare gli account computer elencati in un file CSV è quasi identico. La principale differenza è che devo aggiungere un segno di dollaro ($) alla fine del valore del parametro -Identity per indicare che desidero disabilitare un oggetto computer e non un oggetto account utente. Cambio anche i nomi delle variabili e dei file per renderli più appropriati per gli account computer.

Ecco lo script:

      $computers=Import-CSV c:tempcomputers.csv
ForEach ($computer in $computers)
{
     Disable-ADAccount -Identity "$($computer.name)$"
}
      

Per controllare i risultati, utilizza il cmdlet Search-ADAccount:

      Search-ADAccount –AccountDisabled –ComputersOnly | Select-Object Name, SamAccountName
      

Disabilitazione degli utenti inattivi

I cmdlet Search-ADAccount e Disable-ADAccount possono essere utilizzati insieme per disabilitare gli account utente inattivi. Darò due esempi. Prima, creerò un nuovo oggetto timespan ($timespan) e lo imposterò a novanta giorni, e poi lo userò come valore del parametro -TimeSpan per disabilitare gli account che non sono stati attivi negli ultimi tre mesi. Il parametro -AccountInactive richiede che il livello funzionale del dominio sia Windows Server 2003 o superiore.

      $timespan = New-Timespan -Days 90
Search-ADAccount -UsersOnly -AccountInactive -TimeSpan $timespan | Disable-ADAccount
      

Un'altra opzione è utilizzare il parametro -DateTime per restituire gli account che sono stati inattivi da una data specifica. Questo script disabilita tutti gli account non attivi dal 3 giugno 2018:

      Search-ADAccount -UsersOnly -AccountInactive -DateTime ‘6/3/2018’ | Disable-ADAccount
      

È importante sottolineare che a causa del modo in cui Active Directory sincronizza l'attributo LastLogOnDate, i risultati ottenuti specificando il parametro –AccountInactive con il cmdlet Search-ADAccount possono essere inaccurati di circa 9–14 giorni.

Come puoi vedere, gestire lo stato degli account di Active Directory con PowerShell è semplice. Poiché PowerShell è orientato agli oggetti, è facile creare oggetti che contengono i dati che vuoi elaborare e poi passarli ad altri cmdlet che eseguono le azioni richieste.

Condividi su

Scopri di più

Informazioni sull'autore

Asset Not Found

Russell Smith

Consulente IT

Consulente IT e autore specializzato in tecnologie di gestione e sicurezza. Russell ha più di 15 anni di esperienza nel settore IT, ha scritto un libro sulla sicurezza di Windows e ha coautore di un testo per la serie Microsoft’s Official Academic Course (MOAC).