Итак, рассмотрим теперь задачу переноса папки профилей пользователей на этапе, когда установка 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 и в этой статье мы будем рассматривать случай, когда операционная система уже установлена и ведется ее активная эксплуатация. В целом процесс переноса выглядит следующим образом:
Теперь немного подробнее:
- Необходимо создать нового пользователя с именем типа TempUser, который будет использован для произведения операции переноса данных. Перезагрузимся, чтобы очистить блокировки на файлы профилей пользователей и входим от имени только что созданного временного пользователя.
- Тут начинается самое интересное, поскольку количество ключей XXCOPY поражает воображение даже опытных линуксоводов. Не мудрствуя лукаво, сообщаю вам готовую команду, которую следует запустить в cmd для того, чтобы скопировать папку профилей пользователей на диск D:
xxcopy c:\Users d:\Users /E /H /K /SC /oE1
- В реестре следует прописать пути к новому расположению папки профилей пользователей. В ветке HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList следует изменить ключи Default, ProfilesDirectory и Public в нашем случае на «D:\Users\Default», «D:\Users» и «D:\Users\Public» соответственно. В ветке ProfileList также находятся ветки реестра хранящие параметры пользователей, зарегистрированных в системе и если мы хотим, чтобы профили существующих пользователей также были корректно перенесены, необходимо переписать ключ ProfileImagePath для каждой ветки пользователя.
- Все готово к применению внесенных изменений, при этом обратите внимание, мы в действительности не переносили, а копировали данные, поэтому в случае ошибок можно будет легко вернуться назад. Перезагружаемся и входим в систему от имени учетной записи, являющейся администратором системы (полагаю это будет Ваша обычная учетная запись).
- После того как мы убедимся, что система загрузилась корректно и профили теперь находятся не на системном диске, воспользуемся возможностями системы 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»
Если все прошло успешно, то Ваша система не только имеет папку профилей пользователей на выделенном диске, но и защиту от возможных ошибок за счет символических ссылок, указывающих на новое расположение.
Не понятно,как создавать символические ссылки на диске C???
При помощи утилиты mklink:
Мерси, попробуем
«Создадим на системном диске символические ссылки на новое расположение папки профилей пользователей для повышения совместимости приложений.»-подскажите где это писать?
Прочитайте, пожалуйста, целиком п. 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»
Набираю 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.
замените кавычки на «такие»
сайт заменяет их надо такие которые как две запятые
Действительно, ерунда какая-то с этими кавычками… Будем разбираться, спасибо за комментарии!
Я переношу на диск F, все прошло ОК, папки Documents and Setting и Users удалились, но при выполнении команд
mklink /F «C:\Documents and Settings» «F:\Users»
mklink /F «C:\Users» «F:\Users»
пишет:
Недопустимый ключ: «F».
В чем причина?
Вам следует вводить:
mklink /D «C:\Documents and Settings» «F:\Users»
mklink /D «C:\Users» «F:\Users»
Спасибо именно так, все ОК.
Где то встречал, перенос папки ProgramData, не у Вас?
попробуйте здесь посмотреть:
https://myknowledgeshare.wordpress.com/2011/04/11/%D0%BF%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81-%D0%BF%D0%B0%D0%BF%D0%BA%D0%B8-%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B5%D0%B9-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D0%B5/
А что делать если папка по русски названа, XXCOPY ругается и ничего не делает?
по-русски случаем не «Пользователи»? На самом деле она называется Users, просто отображается как «Пользователи»
Вы правы, спасибо. Все получилось. На XP все было проще 🙂
Добрый день!
Озадачился данной темой, при поиске в инете натолкнулся на несколько статей, суть которых схожа с этой, однако эти статьи имеют некоторые разночтения с данной статьёй, посему хочу задать не скромный вопрос:
а почему в данном мануале для создания символических связей используется ключ /D, когда в остальных статьях ключ /J ?
Спасибо за комментарий!
Ответ может быть найден в следующей статье:
http://ru.wikipedia.org/wiki/%D0%A2%D0%BE%D1%87%D0%BA%D0%B0_%D1%81%D0%BE%D0%B5%D0%B4%D0%B8%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_NTFS
Использование ключа /D дает создание символической ссылки (symbolic link), а не точки соединения (junction point). Если говорить коротко, то символические ссылки обладают большим функционалом, но поддерживаются только в операционных системах старше Windows Vista.
Уведомление: Windows 7 перенос папки пользователей на этапе установки | Шутки ради
Маленький вопрос. Когда я запускаю после выполнения вышеописанных операций средство переноса данных Windows, то программа пишет «Вход в систему выполнен с использованием временного профиля….». В принципе, данное средство мне не особо и нужно, но не аукнется ли это в дальнейшем?
Честно говоря не использовал это средство, но могу сказать, что первый вариант переноса данных, на этапе установки, конечно более предпочтителен в плане совместимости и «корректности».
не могли бы вы кинуть ссылку на закачку xxcopy.exe, которым все это проделывали? так как в данный момент на сайте, который вы указали лежит что-то непонятное в виде xxcopysu.exe
http://www.xxcopy.com/xcpydnld.htm
Для того чтобы скачать необходимо сперва пройти короткую процедуру регистрации.
после всей указанной процедуры при запуске долго висит «подготовка рабочего стола», сам рабочий стол стал чёрным, и вылезает сообщение «c:\windows\system 32\config\systemprofile\desktop ссылается на недоступное расположение», а также «вход в систему выполнен с профилем, используемым по умолчанию»
Постарайтесь еще раз внимательно выполнить все указанные шаги, скорее всего Вы ошиблись на одном из них, поскольку у многих уже успешно удалось воспроизвести описанные возможности
Это значит нет ярлыка Users в корне.
а вопрос такой: если делать изменения в уже установленной системе (часть 2 этой инструкции), и после всех успешных манипуляций создать нового пользователя — его профиль ПО УМОЛЧАНИЮ будет расположен уже в новом месте (на диске Д) или в старом на С и с ним придется опять делать такие манипуляции? То есть после произведения всех этих изменений сменится ли дифолтное место расположение профилей для вновьсозданных?
Если вы сделаете все в соответствии с инструкцией, то да, профиль Default также сменит свое расположение.
Здравствуйте! Перенёс Program Files Windows 8 на другой диск через реестр, но эксплорер не хочет переписываться. Да и вообще что-то не то. Возможно там надо делать как нибудь хитрее? Может восьмёрку вы уже растерзали и можете что нибудь подсказать? Прошу прощения если не по теме!
Здравствуйте! Спасибо за ваш комментарий!
К сожалению, опыта переноса папок на Windows 8 пока нет, но думаю, вскоре проработаю этот вопрос и опубликую заметку на эту тему, если кто-то еще проявит интерес! 🙂
Спасибо за быстрый ответ! Я думаю что желающие со временем появятся!
Добрый день. Не подскажите ли по поводу частичного переноса профиля? Интересует перенос только папок данных (документы, изображения и т.д.) При переносе стандартными средствами (пуск-имя пользователя — правый клик — свойства — расположение) в папке пользователя получается две папки например Pictures (не открывается и ругается на права) и Мои изображения (открывается и честно ведет в новое расположение на диске D). Как понимаю дело в тех же символьнных ссылках, как в данном случае их изменить?
Символьные ссылки нельзя изменить, их можно только удалить стандартными средствами и создать заново при помощи утилиты MKLINK
Это все правится в реестре
Информация о путях к системным папкам для активного пользователя хранится в следующих разделах:
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, скажите, ваша проблема решена?
Спасибо автору.
Для меня инструкция сработала, лишь с теми отличиями, что 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-окне вручную удалить кавычки и вписать их снова.
Спасибо вам за отзыв!
Все получилось, спасибо. Но есть проблема, не удаляется папка Users с диска С и все фалы на рабочем столе находятся на диске С в папке Users. Как ее удалить?
Спасибо за статью! Еще один вопрос — нужно ли при втором варианте — все установлено и профили перенесены — переносить папку ProgramData? Заранее благодарю
Здравствуйте, Юрий!
На ваше усмотрение, если желаете, переносите.
После переноса папок не могу удалить папку C:\users т.к. некот файлы заняты другими программами.
По п.3 инструкции выполнил все пункты.
уточните «В ветке ProfileList также находятся ветки реестра хранящие параметры пользователей, зарегистрированных в системе и если мы хотим, чтобы профили существующих пользователей также были корректно перенесены, необходимо переписать ключ ProfileImagePath для каждой ветки пользователя». — Здесь у меня три пользователя и я для них изменил ProfileImagePath. А как с ветками повыше S-1-5-18,S-1-5-19,S-1-5-20,- их не надо трогать?
Только посмотрел — два файла осталось CurrentDatabase_372.wmdb осталось во глубине C:\Users и не удаляются — чего сделать нужно?
Таки я победил эти все «штучки» — разобрался при помощи GOOGLE.
В итоге все перенеслось на D:\Users, а на C:\ теперь создаются ярлыки Users и Document and Settings кот. ссылаются на D:\Users. Странно только что, при открытии этих ярлыков просматриваешь папки пользователей и в свойствах этих папок указывается размещение C:\Users или C:\Document and Settings. Как это ж понимать? И все-таки где ж эти файлы/папки реально размещены?
Подскажите, а где взять саму утилиту mklink? У меня ее нет…
Здравствуйте! Утилита mklink есть в операционных системах Windows начиная с Vista, так что просто откройте командную строку и используйте эту команду.
It’s imeaprtive that more people make this exact point.
Большое Вам спасибо за статью. Все получилось. Спасла ssd от гибели 🙂
Рад помочь, Ксения! Спасибо за комментарий!
Здравствуйте. Может сможете помочь в моей проблеме. Ребёнок при помощи софтины от elcomsoft (system recovery pro) снимает блокировку со своего аккаунта в win7. Есть ли способ защитить папку с профилями (C:\Users) от изменений сторонними програмами.
Здравствуйте, Андрей!
Не уверен, что смогу помочь в вашем вопросе, но догадываюсь, что если ваш ребенок такой хакер, то вы вряд ли как-то убережетесь от этого! 🙂 Дело в том, что в конце концов он просто настроит еще одну отдельную операционную систему на компьютере и от этого вы точно никак не убережетесь, если только не поставите пароль на BIOS.
Спасибо!
На матери отключи USB джамперами и убери CD-ROM-ы и все, больше он таким софтом воспользоваться не сможет, но и ты не сможешь юзать USB!!! А пас биоса каждый знает как снимать.
Хотя если крышку компа закрыть на клепки, а не на болты, то можно просто пас на БИОС, врятли он дрелью будет клепки спиливать 🙂
Но есть еще и административное решение «Еще раз сломаешь блокировку — продам комп к чертям, тогда будешь на телеке в тетрис играть» и ниче не надо делать 🙂
ЗЫ: Я бы комп на клепки заклепал и биос запоролил.
Намучился я с этим способом,
сразу после всех вышеупомянутых манипуляций перезагружаюсь и почему-то рабочий стол черного цвета, устанавливаю Firefox — тормозит жутко, ошибки сценария сыпятся. Устанавливаю Хром — при запуске пишет — не могу записать данные в папку D:/Users…bla…bla…
Использую Internet Explorer — пишет страница загружена с ошибкой. Устал, оставлю все как есть по умолчанию. Жаль.
Я этот способ выбрал как меньшее зло, так как сборки от моего любимого monkrus не устанавливаются ни с файлом ответа ни через Audit Mode. Может быть дело в сборке, а не в способе, но у меня не вышло.
Виталий, так возьмите сборку System USB-Flash 6.0 — там уже предусмотрен перенос на D:\Users
Я просто перенес папки профиля штатными средствами, через свойства — расположение.
Здравствуйте, Sabbah.
Помогите пожалуйста решить одну проблему связанную с темой данной странички. Хотя бы в качестве расширения полезностей от поднятой Вами темы.
Cуть проблемы изложена в конце данного поста, но сам пост, думаю, тоже заслуживает Вашего внимания.
Во-первых, СПАСИБО!
Ваш способ переноса папки Users на несистемный диск оказался очень полезен, давно им пользуюсь — очень удобно, когда надо переустановить систему, но сохранить при этом данные пользователей.
Ключевым моментом предложенной Вами схемы является использование XXCOPY PRO в её триальный период, для копирования папки ЮЗЕРС с сохранением junction points.
Когда у нас только что установленная свежая система и на неё только что поставили XXCOPY PRO, тут все отлично!
Но вот какая проблема…
Я попытался немного расширить предложенную Вами схему.
Представьте себе:
1. Устанавливаем систему;
2. Устанавливаем на систему, по возможности, наиболее полный пакет необходимых для работы (игры/учебы) программ и настраиваем эти программы так, как того хотят пользователи данной машины;
3. Предлагаемым Вами способом, переносим Users с дорогого системного SSD на более дешевый и просторный, дополнительный HDD (с целью сохранения данных или высвобождения места на более дорогом SSD, это кому как нравится);
4. Снимаем образ с системного диска, используя, как оптимальный способ, бесплатную и надежную Clonezilla. Снятый образ сохраняем в некоем хранилище (это для того, чтобы в случае краха не заниматься повторно очень долгим и увлекательно сексуальным процессом установки системы и полного набора необходимых пользователям программ, а просто «взять и накатить системный диск со всеми прогами из сохраненного образа»).
5. Папку Users, со всеми идеальными настройками установленного пакета программ, в её свежем и безгрешном состоянии копируем в то же самое «некое» хранилище (это чтобы и её, при необходимости, можно было достать из хранилища, и поместить заново туда, где её хочет видеть система).
В итоге от применения данной схемы мы имеем возможность восстановить в идеальном состоянии как саму систему со всеми необходимыми программами, так и папку Users, в которой сохранены идеальные настройки установленных программ. С применением такой схемы не страшно доверить свой комп даже малому сынишке, с дозволением устанавливать туда любые игрульки с необъятного Тырнета. Вирус — Невирус, все равно. Крашнулась система — вернул всё из хранилища.
ВСЁ ЭТО ХОРОШО, ЕСЛИ БЫ НЕ ОДНО БОЛЬШОЕ «НО»!
Триальный период XXCOPY PRO равен 60 дней, а систему и папку юзерс скорее всего придется восстанавливать на много позже этих шестидесяти дней, и даже приобрести PRO-версию этой программы сейчас уже не удастся, потому, что Pixelab прекратила своё существование.
Было бы хорошо, если бы был какой-то другой бескровный способ копирования папки Users с сохранением этих капризных junction points.
Подскажите пожалуйста этот альтернативный способ, если Вы его знаете!
Я, конечно же, попытался по хелпу xxCopy расшифровать предоставленный Вами набор ключей, и вроде бы понял для чего предназначен каждый из них, но найти альтернативу программе xxCopy, для меня все равно непосильная задача. Так что надежда только на Вас… Ну или на кого другого из «ЗНАЮЩИХ ЛЮДЕЙ» ;), которые прочитают мой пост.
скачайте «вылеченный» xxcopy