Profils itinérants

Voici une commande PowerShell pour lister les emplacements des profils des utilisateurs actifs d'un Active Directory :

Import-Module ActiveDrectory
Get-ADUser -Filter 'enabled -eq $true' -Properties ProfilePath, HomeDirectory, HomeDrive | Select Name, SamAccountName, ProfilePath, HomeDirectory, HomeDrive

Pour migrer tous les chemins de profil d'un ancien serveur vers un nouveau :

Get-ADUser -Filter 'HomeDirectory -like "*AncienServeur*"' -Properties HomeDirectory | foreach-object {$_ | Set-ADUser -HomeDirectory ($_.HomeDirectory -replace "AncienServeur", "NouveauServeur") -Confirm:$false}

Restaurer les permissions des utilisateurs dans les dossiers de profil :

Import-Module ActiveDirectory
Get-ADUser -Filter 'HomeDirectory -like "*"' -Properties HomeDirectory | ForEach-Object {
  Write-Output $_.HomeDirectory, $_.SamAccountName
  $ACL = Get-Acl -Path $_.HomeDirectory
  $Rule = New-Object System.Security.AccessControl.FileSystemAccessRule $_.SamAccountName, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow"
  $ACL.AddAccessRule($Rule)
  Set-Acl -Path $_.HomeDirectory $ACL
}