Рубрики
Windows Избранное Настройка Софт

Как полностью перенести папку Users (Windows 7, Vista) или Documents and settings (XP) на другой диск

При обычной установке Windows (будь то XP, Виста или Семерка) папка с профилями пользователей всегда находится на системном диске. Если у вас несколько дисков (не важно логические они или физические), то вполне разумно файлы пользователя хранить на диске отличном от системного. Это значительно упрощает процедуру резервирования файлов и позволяет сделать системный диск действительно компактным, что в свою очередь значительно упрощает создание его образа.

К сожалению, Микрософт не прудесмотрел стандартной процедуры для перемещения папок профилей пользователей (перемещение при установке ОС с помощью файла автоматической установки, а также возможность переноса отдельных папок внутри профиля пользователя не в счет). Чтобы решить проблему пришлось довольно долго рыться в сети, в результате вышел на очень интересную статью. Однако, предложенный там метод показался довольно грубым, т.к. требовал значительных модификаций реестра. Но в комментариях к статье мелькнула действительно простая и работающая идея: использование символьных ссылок. Что это такое? Грубо говоря это ярлыки, но на уровне файловой системы. В Висте и Семерке для их создания используется команда mklink, в XP все немного сложнее, необходимо использовать утилиту linkd.exe из состава Windows Server 2003 Resource Kit Tools. Перед выполнением инструкции настоятельно рекомендую сделать полный бэкап системного диска (с помощью утилит типа Acronis TrueImage или Norton Ghost).

О том как переместить папку Users или Documents and Settings на этапе установки Windows читайте здесь: Автоматическая установка Windows (unattended install)

Инструкция обновлена 07.10.2010.

Перенос папки Users (Windows 7, Vista)

Предположим, что нам нужно перенести папку Users с диска С на диск D.

  1. Временно отключаем контроль учетных записей (UAC).
  2. Открываем Total Commander (или любой другой файловый менеджер). Необходимо обязательно включить опцию видимости скрытых файлов. Копируем содержимое папки С:\Users в D:\Users. Копируем все папки кроме All Users и Default User (это не папки а символьные ссылки, которые надо будет создать заново), а также пропускаем папку текущего пользователя.
    Перед началом копирования включите опцию «Копировать права доступа NTFS (нужны админ права)» это позволит пропустить п.12:

    Копируем папки с сохранением прав доступа
    Копируем папки с сохранением прав доступа

    В процессе копирования доступ к некоторым файлам может быть заблокирован (у меня было заблокировано несколько tmp-файлов) — ничего страшного, пропускаем их.

  3. Запускаем редактор реестра (в командной строке ввести regedit) и переходим к разделу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
  4. Изменяем ключи:
    Default на D:\Users\Default
    ProfilesDirectory на D:\Users
    Public на D:\Users\Public.
  5. Теперь создаем нового пользователя (например test) с правами администратора (правый клик на Компьютер -> Управление-> Локальные пользователи -> Правый клик на подгруппе Пользователи -> Новый пользователь).
  6. Перезагружаемся и заходим в систему под только что созданным пользователем (test). Обратите внимание, что файлы профиля пользователя test будут созданы уже в новой папке D:\Users.
  7. Копируем оставшийся профиль основного пользователя.
  8. Переименовываем папку C:\Users в Users-old (или любое другое имя по вашему усмотрению).
  9. Теперь можно приступить к созданию символьных ссылок. Открываем командную строку и последовательно вводим следующие команды:
    mklink /j c:\Users d:\Users
    mklink /j "d:\Users\All Users" c:\ProgramData
    mklink /j "d:\Users\Default User" d:\Users\Default
    mklink /j "d:\Users\Все пользователи" c:\ProgramData
  10. Перезагружаемся и заходим под своим обычным профилем. Проверяем все ли работает как и раньше (должно!). Если все ОК, удаляем временного пользователя (test).
  11. В отличие от Windows XP в Windows 7 и Vista внутри профиля пользователя также присутствуют символьные ссылки. При копировании ссылки портятся (превращаются в папки). Воcстанавливать их вручную долго, поэтому я написал cmd-файл автоматизирующий этот процесс (спасибо snidekit). Скачайте его и откройте в WordPad (WordPad нужен для того, чтобы открыть/сохранить файл в кодировке dos-866, notepad этой функции, к сожалению, лишили). Редактируем первую строку (set userfolder=d:\Users\default) — здесь надо прописать путь к папке профиля пользователя (если он у вас отличный от d:\Users). Сначала восстанавливаем профиль default. Symlinks.cmd рекомендую записать на рабочий стол и запускать как обычно через двойной клик. Далее снова редактируем параметр userfolder, default заменяем на имя папки другого пользователя. Таким образом последовательно восстанавливаем символьные ссылки для профилей всех пользователей.
  12. Теперь остался последний штрих. При копировании папок с одного диска на другой настройки безопасности для них обычно не сохраняются. Папки в D:\Users унаследуют настройки безопасности, установленные для всего диска D. Для всех папок профилей необходимо проделать следующие операции:
    Открыть вкладку Безопасность (Правый клик на папке -> Свойства -> Безопасность). Внизу нажимаем на кнопку Дополнительно. Откроется вкладка Разрешения, внизу еще одна кнопка Изменить — нажимаем. В открывшемся окне убираем галочку с опции «Добавить разрешения, наследуемые от родительских объектов». На вопрос копировать или удалить разрешения отвечаем Копировать. В том же окне из списка разрешений удаляем все лишнее. Должны остаться разрешения для Системы, группы администраторов, а также сюда необходимо внести учетную запись пользователя, которому принадлежит профиль, и назначить ему права полного доступа. Для папки Public, вместо учетной записи конкретного пользователя, необходимо добавить группу «Все» с правами полного доступа.
  13. После этого еще раз перезагружаемся, убеждаемся, что все работает правильно.
  14. Удаляем папку Users-old.
  15. Включаем обратно контроль учетных записей (UAC). На этом все!

Перенос папки «Documents and Settings» (Windows XP)

Предположим, что нам надо перенести папку «Documents and Settings» с диска C на диск D и при этом переименовать в Users.

  1. Открываем Total Commander (или любой другой файловый менеджер). Необходимо обязательно включить опцию видимости скрытых файлов. Копируем все папки из c:\Documents and Settings в d:\Users (кроме папки текущего пользователя!).
  2. Запускаем редактор реестра (в командной строке ввести regedit) и переходим к разделу HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList.
  3. Изменяем ключ ProfilesDirectory на D:\Users.
  4. Создаем нового пользователя (например test) (правый клик на Мой компьютер -> Управление-> Локальные пользователи -> Правый клик на подгруппе Пользователи -> Новый пользователь) с правами администратора.
  5. Перезагружаемся и заходим в систему под только что созданным пользователем (test). Обратите внимание, что файлы профиля пользователя test будут созданы уже в новой папке D:\Users.
  6. Копируем папку пользователя, которую мы пропустили на этапе 1.
  7. Открываем редактор реестра, переходим в раздел HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList. У этого раздела есть подразделы вида S-1-5-…… Открываем их по порядку и изменяем параметр ProfileImagePath (например %SystemDrive%\Documents and Settings\User меняем на d:\Users\User).
  8. Переименовываем папку «Documents and Settings» в «Documents and Settings.bak».
  9. Открываем командную строку и создаем символьную ссылку:
    linkd "c:\Documents and Settings" d:\Users
  10. Перезагружаемся и входим систему под своим обычным профилем. Убеждаемся, что все работает корректно, после чего удаляем временного пользователя (test) и папку «Documents and Settings.bak».
  11. Восстанавливаем настройки безопасности (см. пункт 10 инструкции для Windows 7).

Как еще освободить место на системном диске:

498 ответов к “Как полностью перенести папку Users (Windows 7, Vista) или Documents and settings (XP) на другой диск”

переношу папку Users, изменил ключи реестра, вот дошел до копирования оставшегося профиля основного пользователя, а у меня не получается его скопировать. Подскажите, пожалуйста, в чем причина…

Здраствуйте ещё раз ! Есть тут кто ещё живой ….Нашёл я способ значительно более лёгкий и быстрый .Не создаётся куча непонятных папок и т.д. и т.п. Использовал для этой цели Audit Mode с Sysprep.exe , вся настройка вместе с установкой заняла минут 20. Исходную информацию нашёл на вот этом сайте Папку ProgramData перемещать не стал так как при её перемещении на другой раздел не будет работать Metro в 8КЕ.

Здраствуйте. Проделал всё в точности как тут описано всё встало нормально и вроде всё работает .Но есть кое что непонятное для меня , на диске C осталась папка Users и в тотал коммандере выглядит как символьная ссылка.Весит порядка 150 Мб. Это как нормально или нужно как то её удалить ?Да забыл… у меня ось windows 8,поставил её на SSD 60ГБ второй HDD 500ГБ.

В принципе ничего страшного. Файловые менеджеры (в том числе и стандартный Проводник) тупят и считают символьную ссылку за стандартную папку. Отсюда берутся 150 Мб.

А, забыл упомянуть — все программы ставлю на F:\Program Files (x86), а тот же Google Earth каталога не дает выбрать, сам ломится на C:\

Спасибо автору за статью! У меня win 7 64bit, сегодня пол-дня убил — все пошло несколько неправильно, но сам конечно виноват. Во-первых, также как некоторые здесь столкнулся с глюками — невозможно нормально запустить учетку test. Спасибо коллегам здесь в комментах, прочитал , что проблема связана именно с п.2. «Копировать права доступа NTFS».
Может сделать какую-нибудь пометку в статье, типа: для тех у кого проблема с п.6 , следует вернуться в п.2 и отменить галку при копировании. С этим решением у меня тоже были сложности, ибо ранее копировал второпях всю папку целиком. Удалить ее, чтобы перезаписать в нужном виде тоже не удавалось (ошибка: папка содержит файлы и т.п.). Потом все же нашел решение — переименовал папку Users на новом разделе(F: — куда все хочу переместить) в Users0, а рядом сделал новую копию Users с диска С:, но уже строго по инструкции и без копирования прав доступа. Далее все ок, но есть вопросы, может кто просветит:
1)имею User-old на С: и на F: папки Users и Users0. На С: Users-old — могу спокойно удалить, а вот на F: удалить неправильно созданную User0 не дает. Если зайду не под виндой и хлопну F:\Users0, не пострадает ли F:\Users — где сейчас все действующие профили?
2)Все вроде бы работает нормально — программы устанавливаются(в большинстве своем), каталоги создаются, диск C: (SSD) приятно пустой (занято лишь 15гигов -Windows 7 Ult 64bit), но глюки есть:

не могу поставить Google earth — googleupdatesetup.exe должен докачать что-то из сети, однако ему это не удается, и выскакивает ошибка. Я так понимаю из-за того, что не может получить доступ в какую-то временную папку. Смотрю описание ошибки: если опустить предполагаемый перечень проблем с брандмауэром и службой Background Intelligent Transfer Service(дело точно не в них), то остается:
If you continue to have difficulties with BITS, make sure that you have write access to the following folder:
C:\Documents and Settings\All Users\Application Data\Microsoft\Network\Downloader\

Самое забавное, что я поставил Google Earth до п.12, проверить будет ли программа создавать свой кэш на диске F: и все работало. Потом удалил и стал заниматься п.12, после чего видно и пошли проблемы. Хотя я несколько раз перепроверил — все разрешения сделал точно правильно и для Users и Default и Администратор (встроенная учетка под которой я сижу). Даже сравнивал с разрешениями со старой копией Users — по всем пунктам, как записи, так и типы доступа — все ок. Несколько раз пересмотрел ваше видео, стараясь понять где я еще мог ошибиться, вроде делаю все верно. Было предположение, что в пункте 11, что-то сделал не так. Но открыл терминал -cmd и скопировал команды из буфера, ссылки создаются как для default так и для Администратора…
Вот еще есть программа — Comodo Internet Security, в ней есть типа виртуалки —
виртуальный киоск — запускаю, ругается(по памяти), что не может получить доступ на C:\Users\Администратор\Desktop…Все это странно — где то налажал.
Хотя вот к примеру создаю ярлык на рабочем столе и вижу его в папке F:\Users\Администратор\Desktop, т.е. где-то ранее в символьных ссылках запутался?
Вводил соответственно:
mklink /j c:\Users f:\Users
2 mklink /j «f:\Users\All Users» c:\ProgramData
3 mklink /j «f:\Users\Default User» f:\Users\Default
4 mklink /j «f:\Users\Все пользователи» c:\ProgramData

Для виндовс 8 данная инструкция актуальна или несработает ?знает кто на 8 стоит делать онное или не мучиться ?

На Windows 8, упёрся во входе из под test-юзера, пишет -«Службе «Службе профилей пользователей» не удалось войти в систему. Невозможно загрузить профиль пользователя.» Завис на этом этапе, как быть дальше, или в случае с Windows 8 другая методика, все операции до этого момента делал согласно выше изложенной инструкции.

Попробуйте сделать все по инструкции, кроме переноcа профиля Default.
Вход в test-юзера должен пройти успешно.

А вот вопрос, комп в домене, как можно перенести данные с одной учетки на новую, пересоздать допустим учетку Вася и перенести данные из старой учетки, Вася_backup???

все вроде получилось, одно сомнение, мне кажется, что перенос профилей на диск D не освободил пространство на диске С, т.к. мы обманули систему с пом. linkd, и она продолжает думать, что на С есть documents and settings, занимающие такое-то количество дискового пространства… разубедите меня

На диске C осталась инфа которую мы не переносили (папка Default) + создались ссылки на D. Они, безусловно, какое-то место занимают. Ну может байт по 50 на каждую..

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

Сделал всё практически по аналогии, предварительно поправив в блокноте пути линков. После первого пункта создал тестового пользователя, вошёл в него и скопировал юзер-папки. Далее, заменив в блокноте %userprofile% на путь D:\user\default во всех строках, скопировал и вставил в cmd. И для остальных пользователей проделал это. После выставил настройки безопасности как у оригиналов. Ну и в конце заменил 3 пунка в реестре и + ссылку на собственную юзерпапку.

Пока всё работает :)

Нашёл недоделки — не созданы символические ссылки из папки ProgramData

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

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


Срок проверки reCAPTCHA истек. Перезагрузите страницу.