Le Organizational Unit (OU) sono contenitori Active Directory utilizzati per organizzare utenti, computer e gruppi, e per applicare Group Policy in modo granulare. Con PowerShell è possibile creare e gestire l’intera struttura delle OU senza aprire la console grafica.
Sintassi dei comandi
Visualizzare tutte le OU del dominio
Get-ADOrganizationalUnit -Filter * | Select-Object Name, DistinguishedNameVisualizzare tutte le OU sotto un percorso specifico
Get-ADOrganizationalUnit -Filter * -SearchBase "OU=Azienda,DC=dominio,DC=local" |
Select-Object Name, DistinguishedNameCreare una nuova OU
New-ADOrganizationalUnit `
-Name "Utenti" `
-Path "DC=dominio,DC=local" `
-Description "Contenitore utenti aziendali" `
-ProtectedFromAccidentalDeletion $truePer creare una struttura di OU annidate, prima si crea la OU padre, poi le OU figlie che vi risiedono all’interno
# Creazione OU padre
New-ADOrganizationalUnit -Name "Azienda" -Path "DC=dominio,DC=local"
# Creazopme OU figlie
New-ADOrganizationalUnit -Name "Utenti" -Path "OU=Azienda,DC=dominio,DC=local"
New-ADOrganizationalUnit -Name "Gruppi" -Path "OU=Azienda,DC=dominio,DC=local"
New-ADOrganizationalUnit -Name "Computer" -Path "OU=Azienda,DC=dominio,DC=local"
New-ADOrganizationalUnit -Name "Server" -Path "OU=Azienda,DC=dominio,DC=local"Per modificare la descrizione di una OU
Set-ADOrganizationalUnit -Identity "OU=Utenti,OU=Azienda,DC=dominio,DC=local" `
-Description "Utenti del dominio aziendale"Per rinominare una OU non si usa Set-ADOrganizationalUnit, il nome fa parte del Distinguished Name, ma Rename-ADObject
Rename-ADObject -Identity "OU=Utenti,OU=Azienda,DC=dominio,DC=local" -NewName "Dipendenti"Spostare un oggetto in un’altra OU (ad esempio un singolo utente)
Move-ADObject `
-Identity "CN=Mario Rossi,OU=Utenti,DC=dominio,DC=local" `
-TargetPath "OU=Utenti,OU=Azienda,DC=dominio,DC=local"Rimuovere la protezione da cancellazione accidentale
Set-ADOrganizationalUnit -Identity "OU=Utenti,OU=Azienda,DC=dominio,DC=local" `
-ProtectedFromAccidentalDeletion $falseSpostare un oggetto in un’altra OU
Move-ADObject `
-Identity "CN=Mario Rossi,OU=Utenti,DC=dominio,DC=local" `
-TargetPath "OU=Utenti,OU=Azienda,DC=dominio,DC=local"Spostare un’intera OU con tutto il contenuto. La OU, con tutto ciò che contiene, diventa una sotto-OU della destinazione, senza bisogno di spostare i singoli oggetti al suo interno. Il comando funziona se la protezione da cancellazione accidentale è disattivata
Move-ADObject `
-Identity "OU=Utenti,DC=dominio,DC=local" `
-TargetPath "OU=Azienda,DC=dominio,DC=local"Eliminare una OU
# OU senza contenuto
Remove-ADOrganizationalUnit -Identity "OU=Utenti,OU=Azienda,DC=dominio,DC=local" -Confirm:$false
# OU con tutto il contenuto (eliminazione ricorsiva)
Remove-ADOrganizationalUnit -Identity "OU=Utenti,OU=Azienda,DC=dominio,DC=local" `
-Recursive -Confirm:$falseEsempio di utilizzo
Scenario: creare la struttura base delle OU per una nuova azienda, spostare un utente esistente nella OU corretta e verificare il risultato.
Creare la struttura gerarchica con protezione da cancellazione accidentale
New-ADOrganizationalUnit -Name "Azienda" -Path "DC=dominio,DC=local" -ProtectedFromAccidentalDeletion $true
New-ADOrganizationalUnit -Name "Utenti" -Path "OU=Azienda,DC=dominio,DC=local" -ProtectedFromAccidentalDeletion $true
New-ADOrganizationalUnit -Name "Gruppi" -Path "OU=Azienda,DC=dominio,DC=local" -ProtectedFromAccidentalDeletion $true
New-ADOrganizationalUnit -Name "Computer" -Path "OU=Azienda,DC=dominio,DC=local" -ProtectedFromAccidentalDeletion $trueSpostare un utente già esistente nell’OU predefinita verso la OU corretta
Move-ADObject `
-Identity "CN=Mario Rossi,CN=Users,DC=dominio,DC=local" `
-TargetPath "OU=Utenti,OU=Azienda,DC=dominio,DC=local"Verificare la nuova posizione dell’utente
Get-ADUser -Identity "mario.rossi" | Select-Object Name, DistinguishedName
# Output atteso
Name DistinguishedName
---- -----------------
Mario Rossi CN=Mario Rossi,OU=Utenti,OU=Azienda,DC=dominio,DC=localL’elenco degli articoli di questa serie può essere consultato qui