Passaggio di un gruppo di utenti da un Dominio ad un altro

()

Eseguire il passaggio di un gruppo di utenti da un dominio ad un altro in Active Directory è un’operazione complessa che richiede attenzione, soprattutto quando si trattano dati sensibili.
Di seguito sono forniti gli script in PowerShell per eseguire il trasferimento di un gruppo di utenti tra due domini in Active Directory, considerando che entrambi i domini sono già configurati e il trasferimento richiede una gestione accurata di utenti, gruppi e altri attributi.

  1. Preparazione e Assunzioni
    Prima di iniziare, assumiamo le seguenti condizioni:

I due domini sono DomainA (dominio di origine) e DomainB (dominio di destinazione).
È necessario trasferire un gruppo di utenti da DomainA a DomainB.
L’amministratore ha i permessi per accedere e modificare entrambi i domini.
I domini sono trustati tra di loro o l’amministratore ha accesso amministrativo in entrambi i domini.

  1. Creazione di una lista di utenti da trasferire
    Per prima cosa, è necessario creare un elenco di utenti da trasferire. Puoi estrarre i dettagli degli utenti da un gruppo in Active Directory.

Creare un elenco di utenti nel gruppo di origine

$groupName = “NomeDelGruppo” # Nome del gruppo in DomainA
$domainA = “DomainA” # Nome del dominio di origine
$domainB = “DomainB” # Nome del dominio di destinazione

Ottieni gli utenti dal gruppo in DomainA

$usersToMove = Get-ADGroupMember -Identity $groupName -Server $domainA | Where-Object { $_.objectClass -eq “user” }

Salva gli utenti in un file per riferimento futuro

$usersToMove | Select-Object SamAccountName, DistinguishedName | Export-Csv “C:\UsersToMove.csv” -NoTypeInformation
Write-Host “Gli utenti sono stati esportati nel file C:\UsersToMove.csv”

  1. Creazione degli utenti in DomainB
    Una volta estratto l’elenco degli utenti, il passo successivo è creare gli stessi utenti in DomainB. Assicurati di copiare le informazioni necessarie come il nome utente, l’UPN (User Principal Name), i gruppi di appartenenza e le password.

Importare la lista di utenti da trasferire

$usersToMove = Import-Csv “C:\UsersToMove.csv”

foreach ($user in $usersToMove) {
# Verifica se l’utente esiste già in DomainB
$existingUser = Get-ADUser -Filter { SamAccountName -eq $user.SamAccountName } -Server $domainB -ErrorAction SilentlyContinue

if (-not $existingUser) {
    # Creare un nuovo utente in DomainB
    New-ADUser -SamAccountName $user.SamAccountName `
               -UserPrincipalName "$($user.SamAccountName)@$domainB" `
               -Name $user.SamAccountName `
               -GivenName $user.SamAccountName `
               -Surname "User" `
               -DisplayName $user.SamAccountName `
               -AccountPassword (ConvertTo-SecureString "PasswordTemporanea123!" -AsPlainText -Force) `
               -Enabled $true `
               -PassThru `
               -Server $domainB
    Write-Host "Creato l'utente $($user.SamAccountName) in $domainB"
} else {
    Write-Host "L'utente $($user.SamAccountName) esiste già in $domainB"
}

}

  1. Copiare i gruppi di appartenenza
    Una parte importante del processo è copiare le appartenenze ai gruppi di Active Directory. Assicurati di copiare gli utenti nei gruppi corretti nel nuovo dominio.

powershell
foreach ($user in $usersToMove) {
# Ottieni i gruppi dell’utente in DomainA
$userGroups = Get-ADUser -Identity $user.SamAccountName -Server $domainA | Get-ADUserMembership

foreach ($group in $userGroups) {
    # Aggiungi l'utente a ciascun gruppo in DomainB
    Add-ADGroupMember -Identity $group.Name -Members $user.SamAccountName -Server $domainB
    Write-Host "Aggiunto $($user.SamAccountName) al gruppo $($group.Name) in $domainB"
}

}

  1. Gestire la migrazione delle password
    Il passaggio delle password da un dominio a un altro non è direttamente possibile tramite PowerShell, in quanto le password sono memorizzate in modo sicuro nel database di Active Directory e non possono essere trasferite direttamente. Gli utenti devono reimpostare le loro password o è possibile utilizzare uno strumento di migrazione di terze parti (ad esempio, ADMT, Active Directory Migration Tool).

Tuttavia, per garantire che l’utente possa accedere al nuovo dominio, puoi creare una password temporanea e fornirla agli utenti per il primo accesso:

powershell

foreach ($user in $usersToMove) {
# Fornire una password temporanea
Set-ADUser -Identity $user.SamAccountName -Server $domainB -ChangePasswordAtLogon $true
Write-Host “Password temporanea impostata per $($user.SamAccountName) in $domainB”
}

  1. Rimuovere gli utenti da DomainA
    Una volta completata la migrazione, è possibile rimuovere gli utenti da DomainA, se desiderato, per evitare duplicazioni.

powershell


foreach ($user in $usersToMove) {
# Rimuovere l’utente da DomainA
Remove-ADUser -Identity $user.SamAccountName -Server $domainA
Write-Host “Utente $($user.SamAccountName) rimosso da $domainA”
}

  1. Verifica e Test
    Infine, assicurati che gli utenti siano stati correttamente migrati e siano in grado di accedere ai loro account nel nuovo dominio. Puoi eseguire alcune verifiche come testare l’accesso e la funzionalità dei gruppi di appartenenza.

powershell

foreach ($user in $usersToMove) {
# Verifica che l’utente sia stato creato in DomainB
$newUser = Get-ADUser -Identity $user.SamAccountName -Server $domainB
if ($newUser) {
Write-Host “L’utente $($user.SamAccountName) è stato migrato correttamente a $domainB”
} else {
Write-Host “Errore nel trasferimento dell’utente $($user.SamAccountName)”
}
}
Riepilogo
Questi script ti guideranno attraverso il processo di migrazione degli utenti da un dominio all’altro, creando gli utenti nel nuovo dominio, migrando le appartenenze ai gruppi e gestendo le password. È importante considerare anche eventuali dipendenze o risorse legate agli utenti nei domini originali, come le mailbox di Exchange o le risorse di rete, che potrebbero richiedere configurazioni aggiuntive.

/ 5
Grazie per aver votato!

How useful was this post?

Click on a star to rate it!

Average rating / 5. Vote count:

No votes so far! Be the first to rate this post.

As you found this post useful...

Follow us on social media!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?