Рубрики
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) на другой диск”

Это надо либо только на чистой ОС менять, либо придётся потом установочный диск для восстановления втыкать.

Microsoft Windows [Version 6.1.7601]
(c) Корпорация Майкрософт (Microsoft Corp.), 2009. Все права защищены.

K:\Users\test>mklink /j c:\Users k:\Users
Невозможно создать файл, так как он уже существует.

K:\Users\test>mklink /j k:\Users c:\Users
Невозможно создать файл, так как он уже существует.

Так отвечает компьютер на попытку связать папки. Что делать??

У меня тоже вылезли эти ошибки.
Потом я понял почему.

Такие ошибки вылезают, когда мы пытаемся назначить «псевдоним», который совпадает с уже существующей папкой. Тогда система отказывается (иначе ей будет непонятно — есть и папка и псевдоним с одинаковыми названиями — а что из них надо исполозовать?).
Псевдоним можно создать только если предварительно удалить (или переименовать) папку, псевдоним которой мы хотим создать.

Соответственно, корень ошибки в том, что не удалось переименовать папку Users на диске C.
Об этой ошибке Фёдор пишет внизу.
И у меня тоже папка переименоваться отказалась.
А после этого в командной строке не получилось создать псевдонимы.

Автор объясняет, как с этим работать: нужно установить программу Unlocker. Ищется на раз в Яндексе.
Я, например, взял ее здесь.
(но можно наверное и в других местах).

После установки программы Unlocker, надо ее включить,
выбрать в появившемся диалоге ту папку, для которой вы хотите снять ограничения (у нас — папка Users на диске C:).
Программа выдаст в ответ все папке и файлы из этой папки, которые вносят ограничения — нужно нажать на кнопку «Разблокировать все».
После этого папка Users волшебным образом становится такой, которую можно переименовывать.
Переименовываем — папки Users на C больше нет
— и (ап!) появляется возможность создавать на нее псевдоним.
Соответственно, действия в командной строке действуют )

Однако даже после переименования папки Users,
у меня пошла только первая команда из серии
mklink /j … в командной строке.

Остальные команды не пошли — я так понял потому, что псевдонимы на эти папки уже были созданы в системе (возможно их сама система создала).

Соответственно я действовал так:
удалил действующие псевдонимы (которые не давали создать мне новые псевдонимы = символические ссылки на папки):
(серия команд в командной строке;
если все хорошо — то после ввода команды система ничего не выдает — только пустую строку; если ошибка — система пишет ошибку):

rmdir «d:\Users\All Users»
rmdir «d:\Users\Default User»
rmdir «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

А автор не пробовал кушать задницей? Потому что инструкция именно к этому процессу дана… Выбираем папку, которую надо перенести (пока она ещё на диске с:) правая мышь, свойства, расположение. Указываем путь к той папке где всё должно быть на диске d: и нажимаем применить. Вуаля! И так с каждой библиотекой… Всё остальное в папке Users — просто хлам, который при переносе из системы в систему просто занимает место на диске, и мешает работе системы. Ну, разве, что кроме двух файлов в AppData, и то, если Outlook используется…

Max Bond, сделал все как ты и написал. Только при копировании юзеров на другой диск через Total Commander вроде не скопировались папки «Изображения», «Видео» и т.п., вылезло сообщение о том, что они не смогут быть скопированы, вообщем без них все перенес. Но, вот при сохранение документов через различные программы, вылезает окно, где показано, что users на диске C — папка по умолчанию. Посмотри скрин пожалуйста. Как это исправить? И что должно быть в старой папке users? У меня там не все ярлыки:
https://yadi.sk/i/i0SriyFjbpdvk
https://yadi.sk/i/tBnHL_UNbpe9E

Не понял сути 11 пункта по XP варианту, который отправляет к 10 пункту варианта Win 7, который по сути дубликат 10 пункта варианта по XP.

Что всё таки имеется в виду под словами: «Восстанавливаем настройки безопасности»

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

В Linux так по дефолту везде идет. Директория пользователей — отдельный диск.
Вот и под виндовс захотел так настроить. За статью — Спабибо! =)

При попытки изменить папку(в диске С) на User-old(или в любое другое) вылазиет ошибка.Пишет «Please remove the write potection.

Max Bond, а как на этапе установки системы перенести Program Files, ProgramData и Users на диск D?

Спасибо автору — отличная статья.
Два небольших вопроса:
1. Все установилось нормально — но при каждой перезагрузке появляется сообщение «Подготовка рабочего стола» и далее пишет что профиль временный и установки этого профиля при перезагрузке будут утеряны.
2. Как перенести папки — «Program Files (x86)» и «Program Files» на один диск с Users
не потеряв при этом ссылки, на установленные программы.

1. Загрузка временного профиля свидетельствует о том, что не все прошло гладко!..
Профиль создался или перенесся неправильно — поэтому загружается времянка.
Надо все еще раз перепроверить. Если создать новый профиль, в него входит нормально?

2. На ум приходит только один способ. Загрузиться со съемного диска. Перенести папки. Создать символьные ссылки.
Но вообще так делать рекомендую только в крайнем случае. Лучше все-таки это делать на этапе установки системы (тоже справедливо и с папкой users)

Вот у меня так же!
Ошибка: Прекращена работа … (C:\Windows\system32\config\systemprofile\Desktop ссылается на недоступное расположение).
Где рыть-то?

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

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


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