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

Piattaforma
Centro risorseBlog
Come aggiungere, eliminare e modificare utenti e gruppi locali con PowerShell

Come aggiungere, eliminare e modificare utenti e gruppi locali con PowerShell

Sep 18, 2018

La gestione degli utenti e dei gruppi locali con PowerShell è semplificata attraverso il modulo Microsoft.PowerShell.LocalAccounts, che fornisce cmdlet per creare, modificare, disabilitare o rimuovere account e gruppi. Gli amministratori possono automatizzare compiti come aggiungere utenti ai gruppi, reimpostare password o rivedere le appartenenze, gestendo allo stesso tempo account collegati a Microsoft e Azure AD-linked accounts. La gestione remota tramite sessioni PowerShell semplifica ulteriormente l'amministrazione, sebbene l'audit delle modifiche rimanga essenziale per la sicurezza e la conformità.

Per aiutare gli amministratori a gestire più facilmente utenti e gruppi locali con PowerShell, Microsoft fornisce una raccolta di cmdlet chiamata Microsoft.PowerShell.LocalAccounts. In precedenza, era necessario scaricarla e importarla esplicitamente in PowerShell, oltre a installare il Windows Management Framework 5.1; nei sistemi operativi Windows Server 2016 e Windows 10, la raccolta di cmdlet è inclusa come modulo standard.

Ci sono 15 cmdlet nel modulo LocalAccounts. Puoi visualizzare l'elenco completo eseguendo il seguente comando:

      Get-Command -Module Microsoft.PowerShell.LocalAccounts
      

Image
  • Add-LocalGroupMember — Aggiungi un utente al gruppo locale
  • Disable-LocalUser — Disabilita un account utente locale
  • Enable-LocalUser — Abilita un account utente locale
  • Get-LocalGroup — Visualizza le preferenze del gruppo locale
  • Get-LocalGroupMember — Visualizza l'elenco di tutti i membri del gruppo locale
  • Get-LocalUser — Visualizza le preferenze di un account utente locale
  • New-LocalGroup — Creare un nuovo gruppo locale
  • New-LocalUser — Crea un nuovo account utente locale
  • Remove-LocalGroup — Rimuovi un gruppo locale
  • Remove-LocalGroupMember — Rimuovi un membro da un gruppo locale
  • Remove-LocalUser — Rimuovere un account utente locale
  • Rename-LocalGroup — Rinomina un gruppo locale
  • Rename-LocalUser — Rinomina un account utente locale
  • Set-LocalGroup — Modifica le impostazioni di un gruppo locale
  • Set-LocalUser — Modifica le impostazioni dell'account di un utente locale

Gestione degli account utente locali con PowerShell

Vediamo come puoi utilizzare questi comandi per eseguire compiti comuni relativi alla gestione degli utenti locali su un computer Windows 10.

Elencazione degli utenti e delle loro proprietà con PowerShell

Prima di tutto, otteniamo un elenco di tutti gli account utente locali sulla macchina. Useremo il cmdlet Get-LocalUser:

      Get-LocalUser
      

Image

Come puoi vedere, abbiamo due account utente locali e uno di essi è disabilitato (quello che ha “False” nella colonna “Enabled”).

Se vuoi visualizzare tutte le proprietà e i loro valori per un account utente locale, devi usare il cmdlet Get-LocalUser con i seguenti parametri:

      Get-LocalUser -Name ‘guest’ | Select-Object *
      

Image

Per ottenere il valore di un particolare attributo dell'account utente locale, digita il suo nome dopo il parametro Select-Object. In questo esempio, vogliamo conoscere il valore dell'attributo PasswordLastSet per l'account con il nome utente “administrator”:

      Get-LocalUser -Name ‘administrator’ | Select-Object PasswordLastSet
      

Image

Creazione di un utente locale con PowerShell

Creiamo un nuovo utente con l'aiuto del cmdlet New-LocalUser. Questo cmdlet può creare i seguenti tipi di account utente:

  • Account utente locali di Windows
  • Account Microsoft
  • Account di Azure Active Directory

Quando si crea un account utente locale, non digitare mai la password come testo semplice; convertirla sempre in una stringa sicura utilizzando il parametro ?AsSecureString o ?ConvertTo-SecureString. Ecco il comando per creare un nuovo account utente locale:

      $UserPassword = Read-Host –AsSecureString
New-LocalUser "Netwrix" -Password $UserPassword -FullName "Netwrix" -Description "CompleteVisibility"
      

In un ambiente Windows 10, gli utenti possono autorizzarsi con i loro account Microsoft, quindi possiamo creare un nuovo account utente locale che si leghi alle credenziali di un account Microsoft. Utilizza lo script seguente per farlo (nota che non è necessario digitare la password perché è memorizzata nel cloud Microsoft):

      New-LocalUser -Name "MicrosoftAccountSomeAccount@outlook.com" -Description "Microsoft Account"
      

Per creare un account locale che si leghi al tuo Azure AD, utilizza il seguente comando:

      New-LocalUser -Name "AzureADNetwrix@enterprise.com" -Description "Azure AD Account"
      

Modificare la password o le proprietà della password di un utente locale con PowerShell

Per cambiare la password di un account utente locale, dobbiamo usare il cmdlet Set-LocalUser. Cambiamo la password dell'amministratore locale:

      $UserPassword = Read-Host –AsSecureString
Set-LocalUser -Name Administrator -Password $UserPassword –Verbose
      

Per impostare l'opzione Password never expires per un utente locale con PowerShell, dobbiamo eseguire lo script seguente:

      Set-LocalUser -Name Netwrix –PasswordNeverExpires $False
      

Eliminazione di un account utente locale con PowerShell

Per rimuovere un account utente locale, è necessario utilizzare il cmdlet Remove-LocalUser:

      Remove-LocalUser -Name Netwrix -Verbose
      

Gestione dei gruppi locali con PowerShell

Ora rivolgiamo la nostra attenzione dagli utenti locali ai gruppi locali.

Revisione dei gruppi locali con PowerShell

Prima di tutto, otteniamo un elenco di tutti i gruppi sul nostro Windows Server:

      Get-LocalGroup
      

Image

Aggiungere un gruppo locale con PowerShell

Ora creiamo un nuovo gruppo:

      New-LocalGroup -Name 'Netwrix Users' -Description 'Netwrix Users Group'
      

Aggiungere utenti a un gruppo locale con PowerShell

Per aggiungere un utente (o un gruppo) a un gruppo locale, dobbiamo utilizzare il cmdlet Add-LocalGroupMember. Ad esempio, supponiamo di voler aggiungere utenti al gruppo degli Amministratori locali, ma non vogliamo aggiungerli uno per uno. Aggiungiamo un gruppo agli Amministratori locali, ovvero il gruppo “Netwrix Users”:

      Add-LocalGroupMember -Group 'Administrators' -Member ('Netwrix',’Netwrix Users') –Verbose
      

Se il tuo computer o server fa parte del dominio, puoi anche aggiungere account di dominio e gruppi ai gruppi locali per concedere a quegli utenti diritti locali speciali sul server. Aggiungili utilizzando il formato “DomainNameUser” (per un utente) o “DomainNameDomain Group” (per un gruppo).

Visualizzazione dell'appartenenza di un particolare gruppo con PowerShell

Ora elenchiamo tutti i membri di un particolare gruppo locale:

      Get-LocalGroupMember -Group 'Netwrix Users'
      

Image

Come puoi vedere, il comando mostra tutti gli account locali e i gruppi che sono membri del gruppo “Netwrix Users”. Anche se qui sono elencati solo account e gruppi locali, questo comando mostrerà anche tutti gli utenti e i gruppi di dominio, così come tutti gli account Microsoft e Azure AD.

Visualizzazione di tutti i gruppi di cui un utente è membro tramite PowerShell

Per elencare tutti i gruppi di cui un determinato utente è membro, eseguiremmo lo script seguente:

      foreach ($LocalGroup in Get-LocalGroup)
{
if (Get-LocalGroupMember $LocalGroup -Member 'Guest' –ErrorAction SilentlyContinue)
{
$LocalGroup.Name
}
}
      

Image

Rimozione di un gruppo locale con PowerShell

Per rimuovere un account utente locale da un gruppo, è necessario utilizzare il cmdlet Remove-LocalGroupMember:

      Remove-LocalGroupMember -Group 'Netwrix Users' –Member 'guest'
      

Gestione remota di utenti e gruppi locali con PowerShell

Se vuoi gestire account utente locali e gruppi da remoto, devi connetterti alle workstation remote tramite WinRM usando i cmdlet Invoke-Command e Enter-PSSession. Ad esempio, se vogliamo visualizzare da remoto l'appartenenza al gruppo Admin locale su più computer, dobbiamo eseguire lo script seguente:

      $search = new-pssession -computer pcname1,pcname2,pcname3
invoke-command -scriptblock {Get-LocalGroupMember -Group 'Administrators'} -session $search -hidecomputername | select * -exclude RunspaceID | out-gridview -title "LocalAdmins"
      

Come puoi vedere, è abbastanza semplice gestire gruppi e utenti locali tramite PowerShell, ma per garantire sicurezza, conformità e continuità operativa, è essenziale eseguire l'audit di tutti questi cambiamenti. Per informazioni su come configurare l'audit nativo, si prega di fare riferimento alla Windows Server Auditing Quick Reference Guide.

Condividi su

Scopri di più

Informazioni sull'autore

Asset Not Found

Jeff Melnick

Direttore dell'Ingegneria dei Sistemi

Jeff è un ex Direttore dell'Ingegneria delle Soluzioni Globali presso Netwrix. È un blogger di Netwrix da lungo tempo, nonché relatore e presentatore. Nel blog di Netwrix, Jeff condivide lifehack, consigli e trucchi che possono migliorare notevolmente la tua esperienza di amministrazione del sistema.