Перенос папки профилей пользователей (Users) в ОС Windows 7. Часть 2: Когда все уже произошло

Итак, рассмотрим теперь задачу переноса папки профилей пользователей на этапе, когда установка Windows уже произведена без учета корректировки расположения папки Users.

Аналогичная задача с разных сторон описана для ОС Windows XP (http://meteozond.habrahabr.ru/blog/50607/, http://support.microsoft.com/kb/236621/ru и т.п.), однако в ОС Windows начиная с Windows Vista появляются новые нюансы и связаны они в первую очередь с использованием таких особенностей NTFS, как junction points (http://en.wikipedia.org/wiki/NTFS_junction_point). Наверное Вы уже заметили наличие в свежеустановленной системе Windows Vista или Windows 7 папки с иконкой, подобной ярлыкам. Такими папками в Windows 7, например, являются C:\Documents and Settings, C:\Users\All Users и т.д. Опуская технические детали можно сказать, что эти папки представляют собой ссылки на прежние расположения папок пользователей (как то было в Windows XP) сделанные на уровне файловой системы NTFS и созданы они были именно для того, чтобы «смягчить» переход с Windows XP, сохраняя совместимость с устаревшими приложениями.

И всё бы ничего с их переносом, однако же, есть одно «но». Все разумные стандартные средства копирования/переноса файлов в одной половине своей при встрече такой папки создадут неизвестный объект NTFS с тем же именем, в другой же упадут в бесконечную рекурсию, копируя папки сами в себя. То есть существует очень мало средств, которые на самом деле понимают что такое junction point и уж тем более умеют корректно работать с ними.

Одним из средств умеющих корректно работать с junction points является утилита XXCOPY от издателя Pixelab (http://www.xxcopy.com). Она обладает обширным набором функций копирования, включающим в себя функции копирования прав доступа, резервного копирования, условного копирования и т.п. И конечно же функции для копирования junction points. Для того чтобы в полной мере воспользоваться возможностями XXCOPY необходимо использовать версию Pro. Досада здесь заключается в том, что она не является бесплатной, однако мы нисколько не нарушим лицензионного соглашения, если воспользуемся триальным периодом в 60 дней для наших целей.

Итак, всё готово для начала переноса папки Users и в этой статье мы будем рассматривать случай, когда операционная система уже установлена и ведется ее активная эксплуатация. В целом процесс переноса выглядит следующим образом:

Теперь немного подробнее:

  1. Необходимо создать нового пользователя с именем типа TempUser, который будет использован для произведения операции переноса данных. Перезагрузимся, чтобы очистить блокировки на файлы профилей пользователей и входим от имени только что созданного временного пользователя.
  2. Тут начинается самое интересное, поскольку количество ключей XXCOPY поражает воображение даже опытных линуксоводов. Не мудрствуя лукаво, сообщаю вам готовую команду, которую следует запустить в cmd для того, чтобы скопировать папку профилей пользователей на диск D:
    xxcopy c:\Users d:\Users /E /H /K /SC /oE1
  3. В реестре следует прописать пути к новому расположению папки профилей пользователей. В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList следует изменить ключи Default, ProfilesDirectory и Public в нашем случае на «D:\Users\Default», «D:\Users» и «D:\Users\Public» соответственно. В ветке ProfileList также находятся ветки реестра хранящие параметры пользователей, зарегистрированных в системе и если мы хотим, чтобы профили существующих пользователей также были корректно перенесены, необходимо переписать ключ ProfileImagePath для каждой ветки пользователя.
  4. Все готово к применению внесенных изменений, при этом обратите внимание, мы в действительности не переносили, а копировали данные, поэтому в случае ошибок можно будет легко вернуться назад. Перезагружаемся и входим в систему от имени учетной записи, являющейся администратором системы (полагаю это будет Ваша обычная учетная запись).
  5. После того как мы убедимся, что система загрузилась корректно и профили теперь находятся не на системном диске, воспользуемся возможностями системы NTFS, которые нам так мешали, в своих целях. Создадим на системном диске символические ссылки на новое расположение папки профилей пользователей для повышения совместимости приложений. Поскольку, как было сказано выше, такие ссылки уже существуют на системном диске и junction points нельзя изменять, удалим существующие ссылки и, заодно, перенесенную папку пользователей:
    rd «C:\Documents and Settings»
    rd «C:\Users» /S
    Затем создадим собственно сами ссылки:
    mklink /D «C:\Documents and Settings» «D:\Users»
    mklink /D «C:\Users» «D:\Users»

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

Реклама

56 комментариев

Filed under Windows 7

56 responses to “Перенос папки профилей пользователей (Users) в ОС Windows 7. Часть 2: Когда все уже произошло

  1. Виталий

    Не понятно,как создавать символические ссылки на диске C???

  2. Виталий

    «Создадим на системном диске символические ссылки на новое расположение папки профилей пользователей для повышения совместимости приложений.»-подскажите где это писать?

  3. Прочитайте, пожалуйста, целиком п. 5:

    5. После того как мы убедимся, что система загрузилась корректно и профили теперь находятся не на системном диске, воспользуемся возможностями системы NTFS, которые нам так мешали, в своих целях. Создадим на системном диске символические ссылки на новое расположение папки профилей пользователей для повышения совместимости приложений. Поскольку, как было сказано выше, такие ссылки уже существуют на системном диске и junction points нельзя изменять, удалим существующие ссылки и, заодно, перенесенную папку пользователей:
    rd «C:\Documents and Settings»
    rd «C:\Users» /S

    Затем создадим собственно сами ссылки:
    mklink /D «C:\Documents and Settings» «D:\Users»
    mklink /D «C:\Users» «D:\Users»

  4. Виталий

    Набираю cmd ,потом mklink и вписываю rd «C:\Documents and Settings»
    rd «C:\Users» /S ,потом mklink /D «C:\Documents and Settings» «D:\Users»
    mklink /D «C:\Users» «D:\Users»,не понимаю просто в этом ничего,пишет все время синтакситеские ошибки((( Напишите,если что не так делаю.За ранее спасибо!!!

    • 1. Если перенос уже осуществлен, удалите папки C:\Documents and Settings и C:\Users.
      2. Откройте командную строку (cmd) от имени администратора, для этого в строке поиска меню Пуск введите cmd, затем правый клик на появившуюся cmd.exe и выберите Запуск от имени администратора.
      3. Введите mklink /D «C:\Documents and Settings» «D:\Users», нажмите Enter.
      4. Введите mklink /D «C:\Users» «D:\Users», нажмите Enter.

  5. Сергей

    замените кавычки на «такие»

  6. Сергей

    сайт заменяет их надо такие которые как две запятые

  7. vvs

    Я переношу на диск F, все прошло ОК, папки Documents and Setting и Users удалились, но при выполнении команд
    mklink /F «C:\Documents and Settings» «F:\Users»
    mklink /F «C:\Users» «F:\Users»
    пишет:
    Недопустимый ключ: «F».
    В чем причина?

  8. vvs

    Спасибо именно так, все ОК.
    Где то встречал, перенос папки ProgramData, не у Вас?

  9. Stasemmba

    А что делать если папка по русски названа, XXCOPY ругается и ничего не делает?

  10. saiva

    Добрый день!
    Озадачился данной темой, при поиске в инете натолкнулся на несколько статей, суть которых схожа с этой, однако эти статьи имеют некоторые разночтения с данной статьёй, посему хочу задать не скромный вопрос:
    а почему в данном мануале для создания символических связей используется ключ /D, когда в остальных статьях ключ /J ?

  11. Уведомление: Windows 7 перенос папки пользователей на этапе установки | Шутки ради

  12. Андрей

    Маленький вопрос. Когда я запускаю после выполнения вышеописанных операций средство переноса данных Windows, то программа пишет «Вход в систему выполнен с использованием временного профиля….». В принципе, данное средство мне не особо и нужно, но не аукнется ли это в дальнейшем?

    • Честно говоря не использовал это средство, но могу сказать, что первый вариант переноса данных, на этапе установки, конечно более предпочтителен в плане совместимости и «корректности».

  13. Юрий

    не могли бы вы кинуть ссылку на закачку xxcopy.exe, которым все это проделывали? так как в данный момент на сайте, который вы указали лежит что-то непонятное в виде xxcopysu.exe

  14. http://www.xxcopy.com/xcpydnld.htm
    Для того чтобы скачать необходимо сперва пройти короткую процедуру регистрации.

  15. Рустам

    после всей указанной процедуры при запуске долго висит «подготовка рабочего стола», сам рабочий стол стал чёрным, и вылезает сообщение «c:\windows\system 32\config\systemprofile\desktop ссылается на недоступное расположение», а также «вход в систему выполнен с профилем, используемым по умолчанию»

  16. Rivendell

    а вопрос такой: если делать изменения в уже установленной системе (часть 2 этой инструкции), и после всех успешных манипуляций создать нового пользователя — его профиль ПО УМОЛЧАНИЮ будет расположен уже в новом месте (на диске Д) или в старом на С и с ним придется опять делать такие манипуляции? То есть после произведения всех этих изменений сменится ли дифолтное место расположение профилей для вновьсозданных?

  17. Пётр

    Здравствуйте! Перенёс Program Files Windows 8 на другой диск через реестр, но эксплорер не хочет переписываться. Да и вообще что-то не то. Возможно там надо делать как нибудь хитрее? Может восьмёрку вы уже растерзали и можете что нибудь подсказать? Прошу прощения если не по теме!

    • Здравствуйте! Спасибо за ваш комментарий!
      К сожалению, опыта переноса папок на Windows 8 пока нет, но думаю, вскоре проработаю этот вопрос и опубликую заметку на эту тему, если кто-то еще проявит интерес! 🙂

  18. Пётр

    Спасибо за быстрый ответ! Я думаю что желающие со временем появятся!

  19. ilia

    Добрый день. Не подскажите ли по поводу частичного переноса профиля? Интересует перенос только папок данных (документы, изображения и т.д.) При переносе стандартными средствами (пуск-имя пользователя — правый клик — свойства — расположение) в папке пользователя получается две папки например Pictures (не открывается и ругается на права) и Мои изображения (открывается и честно ведет в новое расположение на диске D). Как понимаю дело в тех же символьнных ссылках, как в данном случае их изменить?

    • Символьные ссылки нельзя изменить, их можно только удалить стандартными средствами и создать заново при помощи утилиты MKLINK

    • vvs

      Это все правится в реестре
      Информация о путях к системным папкам для активного пользователя хранится в следующих разделах:

      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
      здесь все значения имеют тип STRING

      HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
      здесь все значения имеют тип EXPAND STRING

      STRING Cookies — Папка Cookies
      STRING SendTo — Папка SendTo (Отправить)
      STRING Start Menu — Главное меню
      STRING History — Журнал
      STRING Favorites — Избранное
      STRING Cache — Папка Интернет кэша (Temporary Internet Files)
      STRING Programs -Меню «Программы»
      STRING Startup — Меню автозагрузка
      STRING Personal — Мои документы
      STRING My Pictures — Мои рисунки
      STRING My Music — Моя музыка
      STRING My Video — Мои видеозаписи
      STRING Recent — Недавние документы
      STRING Desktop — Рабочий стол
      STRING Templates -Шаблоны

      Временные файлы:

      HKCU\Environment

      EXPAND STRING TEMP
      EXPAND STRING TMP

      Пути к общим папкам хранятся в следующих разделах:

      HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
      здесь все значения имеют тип STRING

      HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
      здесь все значения имеют тип EXPAND STRING

      STRING Common Desktop
      STRING Common Favorites
      STRING Common Start Menu
      STRING Common Programs
      STRING Common Startup

      • Ну, можно и так, но насколько я понимаю, он не совсем об этом спрашивал. ilia, скажите, ваша проблема решена?

  20. Евгений

    Спасибо автору.
    Для меня инструкция сработала, лишь с теми отличиями, что 1) для копирования папок профилей пришлось загрузиться в другую ОС и скопировать из-под нее; 2) команды [rd “C:\Documents and Settings”] и
    rd [“C:\Users” /S] проще заменить удалением с помощью файлового менеджера, причем в режиме защиты от сбоев Windows; 3) в скопированных командах [mklink /D “C:\Documents and Settings” “D:\Users”] и [mklink /D “C:\Users” “D:\Users”] в DOS-окне вручную удалить кавычки и вписать их снова.

  21. Sergey

    Все получилось, спасибо. Но есть проблема, не удаляется папка Users с диска С и все фалы на рабочем столе находятся на диске С в папке Users. Как ее удалить?

  22. Юрий

    Спасибо за статью! Еще один вопрос — нужно ли при втором варианте — все установлено и профили перенесены — переносить папку ProgramData? Заранее благодарю

  23. alex4me

    После переноса папок не могу удалить папку C:\users т.к. некот файлы заняты другими программами.
    По п.3 инструкции выполнил все пункты.
    уточните «В ветке ProfileList также находятся ветки реестра хранящие параметры пользователей, зарегистрированных в системе и если мы хотим, чтобы профили существующих пользователей также были корректно перенесены, необходимо переписать ключ ProfileImagePath для каждой ветки пользователя». — Здесь у меня три пользователя и я для них изменил ProfileImagePath. А как с ветками повыше S-1-5-18,S-1-5-19,S-1-5-20,- их не надо трогать?

  24. alex4me

    Только посмотрел — два файла осталось CurrentDatabase_372.wmdb осталось во глубине C:\Users и не удаляются — чего сделать нужно?

  25. alex4me

    Таки я победил эти все «штучки» — разобрался при помощи GOOGLE.
    В итоге все перенеслось на D:\Users, а на C:\ теперь создаются ярлыки Users и Document and Settings кот. ссылаются на D:\Users. Странно только что, при открытии этих ярлыков просматриваешь папки пользователей и в свойствах этих папок указывается размещение C:\Users или C:\Document and Settings. Как это ж понимать? И все-таки где ж эти файлы/папки реально размещены?

  26. Лара

    Подскажите, а где взять саму утилиту mklink? У меня ее нет…

  27. Ксения

    Большое Вам спасибо за статью. Все получилось. Спасла ssd от гибели 🙂

  28. Андрей

    Здравствуйте. Может сможете помочь в моей проблеме. Ребёнок при помощи софтины от elcomsoft (system recovery pro) снимает блокировку со своего аккаунта в win7. Есть ли способ защитить папку с профилями (C:\Users) от изменений сторонними програмами.

    • Здравствуйте, Андрей!

      Не уверен, что смогу помочь в вашем вопросе, но догадываюсь, что если ваш ребенок такой хакер, то вы вряд ли как-то убережетесь от этого! 🙂 Дело в том, что в конце концов он просто настроит еще одну отдельную операционную систему на компьютере и от этого вы точно никак не убережетесь, если только не поставите пароль на BIOS.

      Спасибо!

  29. DeFaber

    На матери отключи USB джамперами и убери CD-ROM-ы и все, больше он таким софтом воспользоваться не сможет, но и ты не сможешь юзать USB!!! А пас биоса каждый знает как снимать.
    Хотя если крышку компа закрыть на клепки, а не на болты, то можно просто пас на БИОС, врятли он дрелью будет клепки спиливать 🙂
    Но есть еще и административное решение «Еще раз сломаешь блокировку — продам комп к чертям, тогда будешь на телеке в тетрис играть» и ниче не надо делать 🙂

    ЗЫ: Я бы комп на клепки заклепал и биос запоролил.

  30. Виталий

    Намучился я с этим способом,
    сразу после всех вышеупомянутых манипуляций перезагружаюсь и почему-то рабочий стол черного цвета, устанавливаю Firefox — тормозит жутко, ошибки сценария сыпятся. Устанавливаю Хром — при запуске пишет — не могу записать данные в папку D:/Users…bla…bla…
    Использую Internet Explorer — пишет страница загружена с ошибкой. Устал, оставлю все как есть по умолчанию. Жаль.

  31. Виталий

    Я этот способ выбрал как меньшее зло, так как сборки от моего любимого monkrus не устанавливаются ни с файлом ответа ни через Audit Mode. Может быть дело в сборке, а не в способе, но у меня не вышло.

  32. Мимо проходящий

    Виталий, так возьмите сборку System USB-Flash 6.0 — там уже предусмотрен перенос на D:\Users

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s