Il passaggio di un singolo utente da un dominio ad un altro in Active Directory può essere effettuato utilizzando PowerShell. Tuttavia, come accennato in precedenza, questo processo richiede attenzione particolare per garantire che tutti gli attributi dell’utente siano trasferiti correttamente. Ecco una guida passo passo per eseguire il trasferimento di un singolo utente tra due domini.
Assunzioni
- I due domini sono denominati DomainA (dominio di origine) e DomainB (dominio di destinazione).
- L’amministratore ha accesso a entrambi i domini e i domini sono trustati o l’amministratore ha diritti amministrativi su entrambi.
- Si intende copiare l’utente con le stesse credenziali e informazioni nel dominio di destinazione.
- Gli utenti devono cambiare la loro password durante il primo accesso nel nuovo dominio (se non si può trasferire la password direttamente).
1. Esportare le informazioni dell’utente da DomainA
Iniziamo estraendo le informazioni dall’utente nel dominio di origine (DomainA), come il nome, l’UPN (User Principal Name), gli attributi principali e i gruppi di appartenenza.
$sourceDomain = "DomainA" # Nome del dominio di origine
$targetDomain = "DomainB" # Nome del dominio di destinazione
$userSamAccountName = "nomeutente" # Nome utente da trasferire
# Estrai le informazioni dell'utente da DomainA
$user = Get-ADUser -Identity $userSamAccountName -Server $sourceDomain -Properties *
# Verifica che l'utente esista in DomainA
if ($user) {
Write-Host "Utente $userSamAccountName trovato in $sourceDomain."
} else {
Write-Host "Utente $userSamAccountName non trovato in $sourceDomain."
}
2. Creare l’utente in DomainB
Dopo aver ottenuto le informazioni necessarie dall’utente, possiamo procedere a creare l’utente nel dominio di destinazione (DomainB). Alcuni degli attributi più comuni da trasferire includono il SamAccountName, l’UPN, il Nome, e la Password.
# Crea l'utente in DomainB
$targetUserPrincipalName = "$($userSamAccountName)@$targetDomain"
$targetUserFullName = "$($user.GivenName) $($user.Surname)"
# Impostazione della password temporanea
$password = ConvertTo-SecureString "PasswordTemporanea123!" -AsPlainText -Force
# Creare l'utente in DomainB
New-ADUser -SamAccountName $userSamAccountName `
-UserPrincipalName $targetUserPrincipalName `
-Name $targetUserFullName `
-GivenName $user.GivenName `
-Surname $user.Surname `
-DisplayName $user.DisplayName `
-AccountPassword $password `
-Enabled $true `
-PassThru `
-Server $targetDomain
Write-Host "Utente $userSamAccountName creato in $targetDomain."
3. Trasferire i gruppi di appartenenza
Una parte cruciale di questo processo è copiare i gruppi a cui l’utente appartiene da DomainA a DomainB. Utilizziamo Get-ADUserMembership
per ottenere i gruppi e aggiungere l’utente ai corrispondenti gruppi in DomainB.
# Ottieni i gruppi di appartenenza dell'utente in DomainA
$userGroups = Get-ADUser -Identity $userSamAccountName -Server $sourceDomain | Get-ADUserMembership
foreach ($group in $userGroups) {
# Aggiungi l'utente al gruppo corrispondente in DomainB
Add-ADGroupMember -Identity $group.Name -Members $userSamAccountName -Server $targetDomain
Write-Host "Aggiunto $userSamAccountName al gruppo $($group.Name) in $targetDomain."
}
4. Gestire la password dell’utente
Poiché non è possibile trasferire direttamente le password tra i domini, l’utente dovrà reimpostare la password al primo accesso. Puoi forzare l’utente a cambiare la password al prossimo accesso nel nuovo dominio.
# Forzare il cambio password al prossimo accesso
Set-ADUser -Identity $userSamAccountName -Server $targetDomain -ChangePasswordAtLogon $true
Write-Host "Password temporanea impostata. L'utente dovrà cambiarla al prossimo accesso."
5. Rimuovere l’utente da DomainA
Una volta che l’utente è stato creato correttamente nel dominio di destinazione e i gruppi sono stati configurati, puoi rimuovere l’utente dal dominio di origine per evitare duplicazioni.
# Rimuovere l'utente da DomainA
Remove-ADUser -Identity $userSamAccountName -Server $sourceDomain
Write-Host "Utente $userSamAccountName rimosso da $sourceDomain."
6. Verifica e Test
Dopo aver eseguito il trasferimento, è importante eseguire una serie di verifiche per assicurarti che l’utente sia stato correttamente creato nel dominio di destinazione, che appartenga ai gruppi giusti e che la password temporanea funzioni correttamente.
# Verifica che l'utente sia stato creato correttamente in DomainB
$targetUser = Get-ADUser -Identity $userSamAccountName -Server $targetDomain
if ($targetUser) {
Write-Host "L'utente $userSamAccountName è stato trasferito correttamente a $targetDomain."
} else {
Write-Host "Errore nel trasferimento dell'utente $userSamAccountName a $targetDomain."
}
Riepilogo
Questi passaggi ti permettono di trasferire un singolo utente da un dominio ad un altro in Active Directory, includendo:
- Estrazione delle informazioni utente.
- Creazione dell’utente nel dominio di destinazione.
- Copia dei gruppi di appartenenza.
- Gestione della password.
- Rimozione dell’utente dal dominio di origine.
Ricorda che il trasferimento delle password tra domini non è supportato in modo nativo e gli utenti dovranno reimpostare la loro password al primo accesso.