Обычно делается это окольными путями, потому что просто скопировать папку профиля не получится из-за ссылок. Народ предлагает использовать тулзы mklink или junction.exe (от Sysinternals) для создания ссылок, но это муторно.
Есть способ проще 😉
- Пускаем regedit.exe с правами Админа
- Заменяем значение
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileListProfilesDirectory
на желаемый путь - Создаем Пользователя
- Потом входим этим Пользователем в систему и… все 😀
Если нужно, чтобы другие учетные записи создавались по привычному пути, то можно вернуть изначальное значение
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileListProfilesDirectory = %SystemDrive%Users
P.S. Так я создал профиль пользователя на зашифрованном (чего угодно) TrueCrypt 😉
Обновление Windows
Для обновления Windows необходимо, чтобы каталоги Users, Program Files и Windows располагались в одном и том же разделе. Если эти каталоги расположены в разных разделах жесткого диска, обновление Windows не поддерживается.
- Запустить supportmigwizmigwiz.exe с диска установки и забекапить профиль. Бекапить профиль нужно ПОЛНОСТЬЮ или перед удалением переименовать папку, в этом случае придется права доступа вручную править.
- Через "Панель управленияВсе элементы панели управленияУчетные записи пользователейУправление учетными записямиИзменение учетной записи" удалить профиль.
- В HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList нужно проверить и удалить раздел. Нужный раздел легко распознать по значению ProfileImagePath.
- Обновление…
После завершения Обновления нужно:
- Меняем значение
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileListProfilesDirectory - Нужно создать нового пользователя по инструкции выше (зайти им). Если этого не сделать, то будет ошибка:
Служба "Клиент групповой политики" препятствует входу в систему. Отказано в доступе
Явно недоработка в Миграции, потому что полноценного создания профиля нет.
Ситуация 1. Переносим профили на другой сервер.
Можно сделать через групповые политики и перемещаемые профили, но проще всего перенести ветку реестра:
и папки пользователей копированием.
Ситуация 2. Переносим профили на другой диск.
Зачем это надо? Для терминального сервера. За несколько лет размер занятого пространства диска C: (загрузочного раздела) может вырасти до сотен гигабайт и возникнут проблемы с резервным копированием, как это получилось у меня. Расчищая диск C: сразу увидел, что профили занимают больше 100GB. И квоты в общем-то тут не решат ситуацию, если квоты вообще допустимы для данной организации. Если пользователи работают с тонких клиентов и терминальный сервер получается единственным местом для хранения их информации, то объём этой информации будет расти и расти.
Кроме этого перенос профилей логически обоснован — для файлов профилей нужно индексирование поиска и теневые копии, для системных файлов индексирование не нужно, теневые копии.. даже не могу представить в какой ситуации это может быть востребовано. Для папок профилей бекап желателен, для загрузочного раздела — бекап необходим и большой суммарный объём профилей на этом же разделе сильно мешает, как уже говорил выше.
Первый вариант
Если система только-только установлена меняем значение ProfilesDirectory — "%SystemDrive%Users" на новое расположение, в ветке реестра:
профиль Администратора останется на старом месте, новые уже будут созданы по новому пути. Этого вполне достаточно. Однако при таком методе возможны проблемы при обновлении системы в дальнейшем.
Второй вариант
Другой вариант когда система относительно свежая, но уже есть пользователи и программы. В этом случае некоторые программы, например MS Office, прописали абсолютные пути к профилям на диске C:. Тогда лучше переместить все профили скриптом и создать символическую ссылку папки Users на новое месторасположение, загрузившись с установочного диска в командную строку:
если в указании пути будет пробел, то нужно заключить путь в кавычки. Можно дополнить ключом перезагрузки:
и пойти пить чай.
В реестре при этом менять ничего не надо и в этом большой плюс этого метода — система "думает", что все по прежнему на диске C:/ и корректно работает через символическую ссылку. Проверить можно набив путь к профилю пользователя как C:Users"какой-то пользователь" и откроется он именно как C:Users. , а не как D:Users. . (при переносе на D).
Установка разрешений
После переноса папок профилей для каждой из них нужно обязательно отключить наследование разрешений и поменять разрешения безопасности на следующие:
- System — Полный доступ;
- Administrators — Полный доступ;
- Учётка пользователя — Полный доступ;
- Больше ничего быть не должно.
Для самой папки Users разрешения следующие:
- System — Полный доступ;
- Administrators — Полный доступ;
- Users — Чтение/Выполнение;
- Все — Чтение/Выполнение.
То есть для корректной работы системы все разрешения в новом расположении должны соответствовать разрешениям, какие были на диске C:. Это важно.
Если же система довольно старая, профили по несколько гигабайт, пользоваться скриптом не рекомендую, лучше делать руками и не копировать, а перемещать, контролируя начальный размер папки профиля и размер перенесенного. В этом случае, это понятно и очевидно, ссылку для всей папки C:/Users создать нельзя, так как в ней есть открытые файлы нашего текущего профиля. Профили переносятся отдельно. Ссылка создаётся для каждого профиля отдельно. Свой профиль либо можно оставить и не переносить, либо перенести, временно создав второго админа. Создать, залогиниться под ним, перенести свой профиль, создать ссылку, установить разрешения, разлогиниться, зайти под собой, убить второго админа.
Одно замечание — при создании символических ссылок сразу проверяйте их работоспособность. Особенно когда ссылок создается сразу много.
Решение проблем
Возможные проблемы при копировании/переносе заключается в отсутствии доступа к какому-либо файлу:
- Нет прав на каталог;
- Блокировка файла процессом;
- Невозможность удаления файла.
Если нет прав на каталог, тогда нужно стать владельцем контейнера и входящих в него объектов:
затем добавить себе полные права на контейнер и заменить наследуемые разрешения для потомков. После этого можно переносить/удалять.
Если блокировка процессом, тогда рекомендую программу 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 прошло успешно. Установка заменила символическую ссылку на папку и создала в ней дефолтные профили всех пользователей. После установки удалил данную папку и пересоздал ссылку.
Перенос пользовательских профилей на другой диск и изменение пути к ним – весьма непростая задача. Однако, вполне выполнимая, причем несколькими различными способами. После успешного завершения переноса старые папки профилей можно будет без проблем удалить.
Предположим, нужно перенести профиль с диска С: на диск D:. Просто скопировать файлы профиля смысла не имеет, поскольку это не сработает.
Самый простой и доступный способ – использовать Средство переноса данных Windows (Windows Easy Transfer). Таким образом можно перенести абсолютно весь профиль, включая папку AppData и разнообразные системные ссылки, связанные с профилем.
В первую очередь нужно зайти в ту учетную запись, которую мы будем переносить. Затем откроем Средство переноса. Для этого щелкните на кнопке Пуск и перейдите в меню Все программы > Стандартные > Служебные > Средство переноса данных Windows.
Запустится Средство переноса данных Windows, в котором, фактически, просто нужно выбрать место, где будет сохранены пользовательские данные. Лучше всего перенести их на внешний жесткий диск или USB-флешку, хотя никто не мешает выбрать сетевой диск.
В итоге у нас получится файл с расширением .MIG, в котором будут хранится драгоценные данные.
Далее по этапам.
1. Зайдите с учетной записью Администратора и удалите старый профиль и всего его файлы (если страшно, можете предварительно их сохранить в надежном месте).
2. Откройте редактор системного реестра (Пуск > regedit).
3. Перейдите в ветку системного реестра HKEY_LOCAL_MACHINESOFTWAREMICROSOFTWINDOWS NTCurrentVersionProfileList.
4. Найдите значение ProfilesDirectory и укажите для него адрес новой папки – скажем, D:Users.
6. Зайдите с учетной записью Администратора.
7. Создайте новую учетную запись пользователя (см. “Учетные записи Windows 7“). Назовите ее так же, как удаленную учетную запись – впрочем, это лишь для удобства.
8. Выйдите из системы и зайдите с новой, только что созданной, учетной записью. Теперь папка профиля будет создана там, где мы указали ранее для значения ProfilesDirectory.
9. Осталось найти созданный ранее файл .MIG и дважды щелкнуть на нем. Мастер перенесет всю пользовательскую информацию в новый профиль. Если название новой учетной записи не совпадает со старой – то в Мастере переноса, в дополнительных параметрах, просто нужно указать новое имя.
Этот способ относится к переносу профиля в давно установленной системе. Однако, порой имеет смысл сделать это сразу после установки Windows 7.
Выбор размещения профиля пользователя при установке Windows 7
Если вы переустанавливаете или устанавливаете Windows 7 “с нуля”, то удобно сразу на этапе установки выбрать новое расположение будущего пользовательского профиля.
После основных этапов установки Windows 7 остановимся в окне, где нужно создать нового пользователя в системе. Не спешите его указывать и нажмите , чтобы открыть окно командной строки.
Теперь займемся переносом профиля на новое место. В нашем примере мы переносим папку C:Users в папку E:Users, а также папки ProgramFiles и ProgramData.
1. Скопируем профили, папку Program Files и ProgramData в новое место.
2. Удалим старые папки и создадим нужные связи между папками.
Папка Program Files:
Вполне вероятно, что при удалении папок командой rmdir появится сообщение об ошибке. Удалить эти папки можно и позднее, после перезагрузки.
Теперь введите regedit чтобы открыть редактор системного реестра.
Перейдите в следующую ветку:
Измените в ней значения пути к папкам ProgramFilesDir и CommonFilesDir, введя диск E: вместо диска C:.
Теперь перейдите в список пользовательских профилей и снова измените пути, указав E: вместо C:.
Закройте редактор системного реестра. Теперь введите следующую команду:
Компьютер будет выключен, включите его опять. Снова появится этап создания пользователя, создайте его и на этом установка Windows 7 и перенос профилей будет завершен.