Microsoft Active Directory serve come punto centralizzato per l’amministrazione, autorizzazione e autenticazione. In AD, l’accesso alle risorse di rete è concesso ai principi di sicurezza, come gli account utente e gli account computer, e queste autorizzazioni possono cambiare nel tempo. Per semplificare la gestione degli accessi e migliorare la sicurezza, le medie e grandi aziende spesso usano i gruppi di sicurezza di Active Directory, che possono contenere account utente, account computer e altri gruppi. Spesso usano anche gruppi di distribuzione per gestire le liste di distribuzione della posta elettronica. Sia i gruppi di sicurezza che quelli di distribuzione hanno identificatori di sicurezza unici (SID) e identificatori globalmente unici (GUID).

Lo snap-in MMC di ADUC è ottimo per gestire entrambi i tipi di gruppi, ma PowerShell è un modo molto più efficiente per gestirli in blocco.

Se non hai già familiarità con i gruppi AD e la gestione dei gruppi, leggi la guida Active Directory Group Management Best Practice prima di andare avanti.

Inoltre, tieni presente che per usare questi script PowerShell, devi importare il modulo per interagire con AD – il Modulo Active Directory per Microsoft Windows PowerShell. Questo modulo è stato introdotto in Windows Server 2008 R2 ed è abilitato di default in Windows Server 2012 e successivi. Puoi ottenere l’elenco completo dei cmdlets del modulo AD eseguendo il seguente comando:

Get-Command -Module ActiveDirectory

L’elenco completo contiene 147 cmdlets; tuttavia, solo questi undici sono relativi ai gruppi Active Directory:

  • Add-ADGroupMember
  • Add-ADPrincipalGroupMembership
  • Get-ADAccountAuthorizationGroup
  • Get-ADGroup
  • Get-ADGroupMember
  • Get-ADPrincipalGroupMembership
  • New-ADGroup
  • Remove-ADGroup
  • Remove-ADGroupMember
  • Remove-ADPrincipalGroupMembership
  • Set-ADGroup

Creazione di un gruppo Active Directory con PowerShell

Per creare un gruppo AD, usa il cmdlet New-ADGroup. Puoi ottenere la sua sintassi eseguendo il seguente comando:

Get-Command New-ADGroup –Syntax

Il modo più semplice per creare un gruppo è eseguire questo breve script:

New-ADGroup "Group Name"

Il sistema ti chiederà di specificare il parametro “GroupScope”, e poi creerà un nuovo gruppo. Tuttavia, questo gruppo avrà dei valori predefiniti, come:

  • Sarà creato nel contenitore LDAP predefinito chiamato “Users”.
  • Avrà il tipo di gruppo “Security”.
  • I campi members, member of, description, email e notes saranno tutti vuoti.

Immaginiamo di voler creare un gruppo di sicurezza chiamato “Quality” sul nostro DC AD. Usiamo i seguenti parametri: Dovrebbe essere nella OU “Produzione” (-Path), dovrebbe essere un gruppo di sicurezza (-GroupCategory), e dovrebbe essere globale (-GroupScope).

New-ADGroup "Quality" -Path "OU=Production,DC=enterprise,dc=com" -GroupCategory Security -GroupScope Global -PassThru –Verbose

Se vuoi fare un gruppo di distribuzione universale, cambia semplicemente il parametro -GroupCategory in “Distribution” e il parametro -GroupScope in “Universal”. Puoi anche cambiare il percorso LDAP cambiando il parametro -Path.

Eliminare un gruppo Active Directory con PowerShell

Per eliminare un gruppo AD, usa il cmdlet Remove-ADGroup. Lo script più semplice sarà simile a questo:

Remove-ADGroup -Identity Quality

Ti verrà richiesto di confermare l’eliminazione del gruppo.

Aggiungere utenti e computer a un gruppo con PowerShell

Puoi aggiungere utenti a un gruppo AD con il cmdlet Add-AdGroupMember. Per esempio, se avete bisogno di aggiungere due utenti, B.Jackson e E.Franklin, al gruppo “Quality”, ecco come sarebbe lo script:

Add-AdGroupMember -Identity Quality -Members B.Jackson, E.Franklin

Una volta aggiunti gli utenti a un gruppo di sicurezza, è possibile eseguire lo script sottostante per verificare che siano elencati come membri:

Get-ADGroupMember -Identity Quality

Se hai bisogno di aggiungere utenti a un altro gruppo di sicurezza o di distribuzione, come “Domain Admins”, specifica “Domain Admins” come valore del parametro -Identity. Se avete bisogno che un gruppo sia membro di un altro, specificate il nome di un gruppo come valore per il parametro -Members. Lo stesso principio si applica agli account dei computer, ma dovrete aggiungere un segno di dollaro ($) alla fine del nome dell’account del computer. Per esempio, per aggiungere il computer “WKS043” a un gruppo, specifica “WKS043$” come valore per il parametro -Member:

Add-AdGroupMember -Identity Quality -Members WKS043$

Aggiungere un utente a più gruppi

Per aggiungere un utente a più gruppi contemporaneamente, esegui il seguente script.

"Managers","Quality" | Add-ADGroupMember -Members ` (Read-Host -Prompt "Enter User Name")

Ti verrà richiesto di inserire il nome utente.

Aggiungimento di utenti a un gruppo da un file CSV

Se vuoi aggiungere un gran numero di utenti a un gruppo, puoi specificarli in un file CSV e poi importare quel file. Nota che l’elenco dei nomi utente nel file CSV deve contenere i SamAccountNames nella colonna “users”, come mostrato di seguito:

Per aggiungere utenti al gruppo da un file CSV, esegui il seguente script PowerShell:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Add-AdGroupMember -Identity "Quality" -members $_.users}

Copiare utenti da un gruppo ad un altro

Se vuoi copiare tutti i membri da un gruppo ad un altro gruppo, esegui il seguente script:

Get-ADGroupMember "Quality" | Get-ADUser | ForEach-Object {Add-ADGroupMember -Identity "QualityControl" -Members $_}

Rimuovere utenti o computer da un gruppo

Per rimuovere un utente da un gruppo, usa il cmdlet Remove-ADGroupMember:

Remove-ADGroupMember -Identity Quality -Members J.Robinson

Per rimuovere un account computer da un gruppo, specifica il nome del computer con un segno di dollaro ($) alla fine come valore del parametro -Members.

Rimozione di account utente multipli da un gruppo

Un modo semplice per rimuovere più utenti da un gruppo AD è quello di creare un file CSV con la lista dei nomi utente e poi rimuovere quegli utenti dall’oggetto gruppo usando questo script:

Import-CSV C:\scripts\users.csv -Header users | ForEach-Object {Remove-ADGroupMember -Identity "Quality" -members $_.users}

Rimozione di un utente da tutti i gruppi

Per rimuovere un utente da tutti i gruppi, esegui questo script:

Get-ADUser -Identity E.Franklin -Properties MemberOf | ForEach-Object { $_.MemberOf | Remove-ADGroupMember -Members $_.DistinguishedName -Confirm:$false}

Nota che l’utente perderà tutta l’appartenenza al gruppo tranne “Domain Users”, che può essere rimosso manualmente se necessario.

Reporting sui gruppi di Active Directory

Ora che sappiamo come eseguire molti compiti comuni di gestione di Active Directory relativi ai gruppi usando PowerShell, vediamo come riportare quali gruppi esistono in AD:

Per elencare tutti i gruppi in AD, usa lo script qui sotto:

Get-ADGroup -filter * -properties GroupCategory | ft name,groupcategory

Ovviamente, vorrai anche esaminare i membri del gruppo AD e le modifiche all’appartenenza al gruppo AD. Qui ci sono i link alle istruzioni per eseguire questi compiti più complessi:

  • Come monitorare le modifiche all’appartenenza al gruppo di Active Directory
  • Come ottenere rapporti sull’appartenenza al gruppo di utenti AD
  • Come esportare i membri di un particolare gruppo AD
  • Gestire le OU e spostare i loro oggetti con PowerShell

Conclusione

Ora che hai imparato come gestire gruppi e appartenenza al gruppo in Active Directory usando gli script PowerShell, prova ad eseguire alcune delle attività di gestione dei gruppi da solo. Tuttavia, fai attenzione, e non dimenticare di abilitare la funzione Active Directory Recycle Bin in modo da poter facilmente ripristinare le tue modifiche se qualcosa va storto. Ricorda, lo snap-in MMC di ADUC è ottimo per gestire i gruppi e l’appartenenza al gruppo, ma PowerShell è molto meglio per gestire i gruppi in blocco.

Jeff è un direttore di Global Solutions Engineering di Netwrix. È un blogger, oratore e presentatore Netwrix di lunga data. Nel blog di Netwrix, Jeff condivide lifehack, suggerimenti e trucchi che possono migliorare notevolmente la tua esperienza di amministrazione del sistema.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.