Перенос профиля пользователя

Ситуация 1. Переносим профили на другой сервер.

Можно сделать через групповые политики и перемещаемые профили, но проще всего перенести ветку реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

и папки пользователей копированием.

Ситуация 2. Переносим профили на другой диск.

Зачем это надо? Для терминального сервера. За несколько лет размер занятого пространства диска C:\ (загрузочного раздела) может вырасти до сотен гигабайт и возникнут проблемы с резервным копированием, как это получилось у меня. Расчищая диск C:\ сразу увидел, что профили занимают больше 100GB. И квоты вобщем-то тут не решат ситуацию, если квоты вообще допустимы для данной организации. Если пользователи работают с тонких клиентов и терминальный сервер получается единственным местом для хранения их информации, то объём этой информации будет расти и расти.

Кроме этого перенос профилей логически обоснован - для файлов профилей нужно индексирование поиска и теневые копии, для системных файлов индексирование не нужно, теневые копии.. даже не могу представить в какой ситуации это может быть востребовано. Для папок профилей бекап желателен, для загрузочного раздела - бекап необходим и большой суммарный объём профилей на этом же разделе сильно мешает, как уже говорил выше.

Первый вариант

Если система только-только установлена меняем значение ProfilesDirectory -  "%SystemDrive%\Users" на новое расположение, в ветке реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

профиль Администратора останется на старом месте, новые уже будут созданы по новому пути. Этого вполне достаточно. Однако при таком методе возможны проблемы при обновлении системы в дальнейшем.

Второй вариант

Другой вариант когда система относительно свежая, но уже есть пользователи и программы. В этом случае некоторые программы, например MS Office, прописали абсолютные пути к профилям на диске C:\. Тогда лучше переместить все профили скриптом и создать символическую ссылку папки Users на новое месторасположение, загрузившись с установочного диска в командную строку:

robocopy C:\Users D:\Users /E /COPYALL /XJ 
rmdir C:\Users /S /Q 
mklink /D C:\Users D:\Users

если в указании пути будет пробел, то нужно заключить путь в кавычки. Можно дополнить ключом перезагрузки:

Shutdown -r -f -t 00

и пойти пить чай.

В реестре при этом менять ничего не надо и в этом большой плюс этого метода - система "думает", что все по прежнему на диске C:/ и корректно работает через символическую ссылку. Проверить можно набив путь к профилю пользователя как C:\Users\"какой-то пользователь" и откроется он именно как C:\Users....., а не как D:\Users....

Установка разрешений

После переноса папок профилей для каждой из них нужно обязательно отключить наследование разрешений и поменять разрешения безопасности на следующие:

  1. System - Полный доступ;
  2. Administrators - Полный доступ;
  3. Учётка пользователя - Полный доступ;
  4. Больше ничего быть не должно.

Перенос профиля пользователя

Для самой папки Users разрешения следующие:

  1. System - Полный доступ;
  2. Administrators - Полный доступ;
  3. Users - Чтение/Выполнение;
  4. Все - Чтение/Выполнение.

То есть для корректной работы системы все разрешения в новом расположении должны соответствовать разрешениям, какие были на диске C:\. Это важно.

Если же система довольно старая, профили по несколько гигабайт, пользоваться скриптом не рекомендую, лучше делать руками и не копировать, а перемещать, контролируя начальный размер папки профиля и размер перенесенного.

Одно замечание - при создании символических ссылок сразу проверяйте их работоспособность. Особенно когда ссылок создается сразу много.

Решение проблем

Возможные проблемы при копировании/переносе заключается в отсутствии доступа к какому-либо файлу:

  1. Нет прав на каталог;
  2. Блокировка файла процессом;
  3. Невозможность удаления файла.

Если нет прав на каталог, тогда нужно стать владельцем контейнера и входящих в него объектов:

Перенос профиля пользователя

затем добавить себе полные права на контейнер и заменить наследуемые разрешения для потомков. После этого можно переносить/удалять.

Если блокировка процессом, тогда рекомендую программу Unlocker - много вирусов под видом этой программы, поэтому предлагаю скачать с моего Google Drive (версия 1.9.2).

Невозможность удаления файла проявляется в основном файлами нулевого размера с точкой в конце имени файла. При попытке удаления появляется ошибка:

Перенос профиля пользователя

В этой ситуации отлично помогает Far Manager, находите файл и нажимаете Alt-Del, затем кнопку "Wipe".

Перенос профиля пользователя

Все изложенное опробовано в "боевых условиях" продакшена. Пока "полет нормальный", если возникнет ещё что-то, тогда напишу дополнение.

Дополнение от 14.06.2016

Оказалось, что если диск с символической ссылкой, созданной с ключом /D, открыт как сетевой на другом компьютере, то переход по данной ссылке заканчивается ошибкой: - "Символическая ссылка не может быть загружена, так как её тип отключен". Для устранения данной ошибки ссылку нужно пересоздать с ключом /J (junction).

Дополнение от 15.06.2016

Папка Users на диске C:/ была заменена символической ссылкой на другой диск, при этом в реестре ничего не менялось. Обновление с Windows 2008 до 2008 R2 прошло успешно. Установка заменила символическую ссылку на папку и создала в ней дефолтные профили всех пользователей. После установки удалил данную папку и пересоздал ссылку.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *