Recentemente mi sono imbattuto in una esigenza particolare da un cliente presso il quale tutti gli utenti lavorano via desktop remoto su un server Windows Server 2008. Il numero di utenti è cresciuto parecchio e pur essendo abituati a non tenere molte cose sul desktop o nella cartella documenti del profilo, il disco è andato via via verso la saturazione. Si è quindi resa necessaria l’aggiunta di nuovi dischi e la creazione di un nuovo volume sul quale si è deciso di spostare i profili utente così da liberare spazio su disco e tenersi un buon margine per il futuro. Vediamo come eseguire l’operazione senza creare disagi agli utenti.
Innanzitutto dobbiamo eseguire l’accesso al server con un utente amministratore che non sia l’utente del quale vogliamo spostare il profilo. Supponiamo, nell’esempio seguente, di voler spostare il profilo relativo all’utente a.monguzzi.
Decidiamo di spostare il profilo a.monguzzi dalla cartella c:\users, quella di default, alla cartella e:\ProfiliUtente. Per fare questo apriamo un prompt di comandi e utilizziamo lo strumento robocopy per la copia della cartella relativa al profilo. Dobbiamo sincerarci di copiare tutta la cartella, comprese le ACL relative ai file in essa contenuti. Utilizziamo quindi il comando
robocopy c:\users\a.monguzzi e:\ProfiliUtente\a.monguzzi /e /copyall /r:2 /w:10
Il comando in pratica copia la cartella a.monguzzi nel nuovo percorso includendo eventuali sottocartelle anche se vuote (/e), tutti gli attributi dei file compresi i permessi NTFS (/copyall) ed esegue 2 tentativi a distanza di 10 secondi su eventuali file che non si potessero copiare per qualche ragione (/r:2 /w:10). Lanciamolo quindi e attendiamo il termine dell’operazione.
La copia potrebbe richiedere anche parecchio tempo, in virtù della dimensione del profilo. Terminata l’operazione dobbiamo avvisare il sistema operativo che il percorso del profilo utente è cambiato. Per fare questo è necessario agire a livello di registro di sistema, modificando il valore di un chiave che specifica, appunto, il path associato al profilo dell’utente in questione. Per modificare tale valore dobbiamo accedere alla posizione di registro seguente:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
Qui troviamo delle ulteriori sottochiavi, le quali rappresentano ognuna l’identificatore di sicurezza (SID) di un account utente. Dobbiamo scoprire quale sia il SID dell’utente al quale stiamo migrando il profilo. A questo scopo esistono degli script vbs scaricabili dalla rete (ad esempio SIDList.vbs dell’MVP Ramesh Srinivasan) oppure possiamo operare con il fido ADSI editor. L’attributo di nostro interesse è quello di nome objectSid relativo ovviamente all’utente sul quale stiamo lavorando.
Ora dobbiamo cercare, all’interno delle chiavi di registro, quella con il nome uguale al SID appena identificato.
Modifichiamo a questo punto il valore relativo a ProfileImagePath con la nuova posizione del profilo utente, quindi e:\ProfiliUtente\a.monguzzi.
Abbiamo quindi terminato le operazioni di migrazione del profilo sul nuovo percorso. Possiamo quindi provare ad eseguire un accesso con l’utente appena manipolato e verificare che il profilo caricato sia effettivamente quello corretto. Aprendo un prompt dei comandi una volta eseguito l’accesso il comando SET ci consentirà di visualizzare il percorso relativo al profilo utente corrente e avremo quindi la certezza dell’avvenuta modifica
Una volta assicurati che l’operazione sia andata a buon fine possiamo eliminare definitivamente la cartella relativa al profilo utente dal vecchio percorso.
Ciao Andrea.
Ho letto il tuo interessante articolo in cui all’inizio parli di un disco aggiunto (e:) su cui hai spostato la condivisione delle cartelle dell’utente.
Sto cercando di fare la stessa cosa ma con una variante.
Mi risulta che non si può fare nel caso in cui invece di un disco sul server è presente un NAS con le cartelle condivise ad es. al posto di [e:\ProfiliUtente\a.monguzzi] volessi utilizzare un path simile a [\\NAS3\ProfiliUtente\a.monguzzi] anche se ho connesso una unità di rete (ad esempio \\NAS3 diventa N:).
Puoi confermare o eventualmente darmi una alternativa ?
Grazie infinite !
ciao Andrea
Anch’io sarei interessato alla possibilità di avere i profili su un NAS senza però la necessità di avere un dominio windows
Idem sono molto interessato a quest’ultima casistica (passaggio share di rete da dominio a nas migrando i profili utente)
ciao andrea molto interessante questo articolo, difatti ho un problema simile.
Se io ho una struttura directory condivisa e voglio spostare una directoryo o sottodirectory in un altra parte dello stesso volume, accade ciò: quando facevo quest’ operazione con windows server 2003 i permessi sulla directory rimanevano, se invece tale operazione la faccio con windows server 2008 i permessi vanno completamente persi , a meno che non copio con il comando da te indicato nel articolo. Ma la cosa mi pare assurda perche se sposto le cartelle sullo stesso volume i permessi devono rimanere, nel caso li spostassi in volumi differenti la cosa ci starebbe ma non capisco come mai succede aiutooooooo…..
Ciao Ciro.
Quando viene eseguita una copia, i permessi vengono ereditati dal percorso destinazione. Per mantenere il permessi originali devi spostare la cartella (move), altrimenti devi utilizzare dei tool di copia tipo robocopy, far manager o similari.
Ciao ciao