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

Подскажите кто нибудь пожалуйста  как переименовать папку пользователи на диске С в Windows 7
из за наличии в пути кириллицы некоректно работает приложение
у меня щас такой путь C:\Пользователи\saves\Skidrow
А нужен такой  путь C:\Users\saves\Skidrow что бы в пути не было кириллицы !
Бьюсь уже 3 день никак не могу решить проблему, если кто то знает как решить проблему отпишитесь пожалуйста.
 

Хм… кириллица появляется только, если ты смотришь через Проводник. На самом деле папка называется Users без всяких переименований, изначально в русской Win 7. Т.е. ты свободно можешь использовать путь C:\Users, а путь C:\Пользователи работает только в проводнике как я понимаю.

Чтобы убедиться открой Компьютер -> папка Пользователи. Затем в окне проводника кликни на строку адреса (та что справа от кнопок назад / вперед). После клика вместо красивого путя а-ля Компьютер -> C: -> Пользователи ты увидишь реальный путь и он будет C:\Users.

Всё получилось, но появилась проблемка у простого пользователя нету теперь возможности запускать програмы от имени Администратора, иногда это необходимо что бы не переключаться, так как работаю исключительно под пользователем болезнь со времен работы с unix :D
Пробывал создать нового, те же грабли, думаю что-то связано с реестром или симлинками пока ответ не нашел.. может у кого-то тоже такая проблема и знает как её решить?
 

Забыл включить обратно UAC.. все работает вопрос снят )
добавьте этот фикс в пункт после изменений с безопасностью ) думаю еще кто-то столкнеться обязательно )

Огромное спасибо Max Bond за это статью и видеоурок!!! Так действительно гораздо лучше, чем поганить реестр. У меня при переносе Users на семёрке всё прошло успешно, чего и желаю всем остальным! только один момент вызвал волнение — в файлике Symlinks.cmd нужно было укзать имя папки пользователя, а оно у меня на русском. Просто написать его туда и сохранить, как на видео,  не получилось, хз чего. в общем, я пошел на сайтик с декодером: http://www.artlebedev.ru/tools/decoder/advanced/ там в левой колонке указал СР866, а в правой нормальнуй СР1251, потом в лоевой написал Димон, расшифровал, и в правой получил перевод — „Ё¬®­. эти символы и подставил вместо имени пользователя. Кривой метод, конечно, мне кажется, что там должно быть совсем не так, что оно само должно перекодировать как-то, я не знаю. Уменя получилось так, по-другому не знаю, если кому поможет — хорошо.

В общем, чтобы сохранить symlinks.cmd в CP866 как раз и нужен WordPad. Только одно НО, сохранять его надо обязательно через опцию «Сохранить как…» и в поле «Тип файла» обязательно указать «Текстовый документ MS-DOS» — этот момент в ролике я упустил, со временем исправлю.

А вот еще такой вопрос: вот перенёс я папку на другой диск. А потом допустим надо будет переставить систему. Тогда выходит, что большинство действий делать не надо, просто указать новые пути в реестре и создать ссылку на общую папку вместо старой папки, так? Ведь внутри папки уже все линки есть.  А в перенесённой папке можно переименовать папку пользователя  под новое имя и указать туда ссылкой. Или так не прокатит? Или даже при одинаковых именах такое не прокатит? И как тогда быть с содержимым папок, типа AppData? Словом, как это можно сделать?

Если систему ставить будешь с нуля, то лучше сразу при установке указать расположение папки Users (см. Автоматическая установка Windows (unattended install)). После установки надо будет создать новых пользователей, и скопировать данные из старых профилей в новые. В принципе копировать можно все файлы, кроме  ntuser.*. Папку AppData тоже надо копировать (например именно там располагаются почтовые базы Outlook), ну может не на 100%, но на 90% — исключить всякие temp папки, кэш эксплорера и т.п.

Если оставишь значение ProfilesDirectory по умолчанию, то тогда все действия инструкции надо повторить + вручную перенести данные из старых профилей.

Как делаю я. Систему заново не переставляю. У меня есть образ системного диска, который при необходимости возвращает систему к начальному состоянию с уже созданными пользователями и базовыми программами, которые мне нужны. Тогда восстановление проходит безболезненно и гладко.

На 7-ке не переименовывается C:\Users никак ни через проводник ни через командер ни через администратора

Не проверял на Висте, но на ХР у вас точно нифига не получится :) Из винды вам не удастся полностью скопировать всё содержимое Documents and settings, конкретно, винда вам не разрешит копировать системные файлы *.DAT и никакие тотал коммандеры и анлокеры вам не помогут. Из-за этих файлов папка Documents and settings восстановится. Зачем танцы с символьными ссылками? Реестр руками правится за 10 минут, ничего там сложного нет. Расскажу, как сделал я. Винда XP SP3 чистая, НЕ СБОРКА, свежеустановленная, даже без дров. Переносил из C:\Documents and settings в D:\Users загрузился с Mini Windows XP USB, далее мой компьютер — сервис — свойства папки — вид — установите флажок Показывать скрытые файлы и папки и снимите флажки Скрывать расширения для зарегистрированных типов файлов и Скрывать защищенные системные файлы. Далее, с помощью виндовского проводника скопировал всё содержимое C:\Documents and Setting в D:\Users (в Mini Windows XP буквы дисков могут отличатся от реальных) далее перезагрузился и зашел уже нормально в систему. Пуск — выполнить — regedit — HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList меняем значение ProfilesDirectory было C:\Documents and Setting поменял на D:\Users и во всех подразделах типа S-1-5- итд этой ветки, параметр ProfileImagePath где значение C:\Documents and Setting на свой путь. Далее в окне редактора реестра из меню Правка выберите команду Найти. Введите в появившемся диалоговом окне строку documents and settings искать имена разделов, имена параметров, значения параметров. Везде должны стоять галки и нажмите кнопку Найти. В каждом разделе и параметре реестра, который содержит исходный путь к папке замените этот путь на свой. Примечание. Это изменение необходимо выполнить для всех вхождений исходного пути в реестре. Имена параметров тоже менять. ВНИМАНИЕ При поиске в реестре строки «Documents and Settings» обнаруживается строковое значение в следующем разделе: HKLM\system\controlset001\control\hivelist. Это строка «\Device\HarddiskVolume#\Documents and Settings». НЕ ИЗМЕНЯЙТЕ ЭТУ СТРОКУ. После завершения поиска строки «Documents and Settings» требуется выполнить также поиск короткого имени файла «Docume~1». Измените путь в найденных строках. Я проверил оба параметра несколько раз, чтобы точно ничего не пропустить :) Перезагрузите компьютер. Теперь исходную папку «Documents and Settings» можно удалить. За основу взята эта статья http://support.microsoft.com/kb/236621

Под XP метод работает (если точно следовать инструкции :)! Я и сам пробовал, да и см. комменты alexandr-makukhin — у него все получилось. Что касается символьных ссылок, то они нужны для совместимости со старым софтом, который тупо ломится в C:\Documents and Settings. Да и по моему, гораздо удобнее создать одну символьную ссылку, чем бегать по реестру и изменять все пути с «Documents and Settings».

Впрочем, твой способ тоже имеет право на существование )

P.S.
В случае чистой установки, можно создать файл Unattend.xml и в нем прописать параметр ProfilesDir — при установке винда сама создаст папку профилей пользователей в нужном месте. Думаю, надо будет как-нибудь об этом написать…

Ааа ) есть в инструкции для XP неточность… надо переделать!

В общем, как делал я пару минут назад на XP SP3:
Скоприровал все папки из «Documents and Settings», которые копируются без ошибки (это все папки, кроме папки текущего пользователя — в моем случае user1).
Далее изменил в реестре ключ ProfilesDirectory.
Создал нового пользователя (user2), добавил его в группу администраторов. Перезагрузился и вошел как user2 (профиль user2 создался уже по новому адресу). Скопировал оставшуюся папку пользователя user1 (все ок — никаких ошибок с ntuser).
Поменял ProfileImagePath для всех учетных записей.
Переименовал «Documents and Settings» в «Documents and Settings.bak», создал символьную ссылку.
Перезагрузился.
Вошел как user1. Удалил user2, удалил «Documents and Settings.bak». Готово.

Опыты переноса Program Files случайно нет? :) Хочу перенести ещё и эту папку. И по поводу символьных ссылок. На быстродействии это никак не отражается? То что обращение идёт не напрямую, а через ссылку?

Program Files? Нет, не пробовал переносить. Хотя чисто теоретически, думаю, можно скопировать Program Files на другой диск (лучше сделать это из другой винды, например как ты писал с Mini Windows XP USB) установить символьную ссылку — система и не заметит подмены.

Насчет производительности символьных ссылок. Я никакой разницы не почувствовал… Если там и есть какие-то издержки, то не значительные.

В хр это делается при установке с помощью winnt.sif
[Unattended]
ProgramFilesDir=\Programs
CommonProgramFilesDir=\Programs\Common
TargetPath=\Windows

В хр это делается при установке с помощью winnt.sif
[GuiUnattended]
ProfilesDir=C:\Settings
и другие папки
[Unattended]
ProgramFilesDir=\Programs
CommonProgramFilesDir=\Programs\Common
TargetPath=\Windows

В файле ссылки внутри C:\Users, которые бьются при перемещении, превращаясь в просто папки.

Очень сумбурная фраза, смысл не понятен.
Я просто вырезаю папки и переношу их на D.
Какой ещё «файл ссылки»? Что там бьётся?

Если вы копируете символную ссылку, то она становиться папкой («бьется»).
Например если у вас есть три символьные ссылки указывающие на одну и ту же папку. При копировании этих ссылок вы создадите три независимые папки. Поэтому ссылки надо не копировать, а создавать заново.

Попробовал. Действительно, если ссылка внутри «вырезаемой папки», то все корректно переносится. А вот при «вырезании» ссылки на прямую, вместо ссылки создается папка… и исходная ссылка не удаляется.

..то есть их гораздо больше…можно проверить например Junction Link Magic.

Я разобрался с переносом на Windows Server 2008 R2 (рус), он конечно смахивает на Win7, но есть нюансы: Все делал как в мануале, но с некоторыми добавлениями…. Когда в свойстве папки влючаете проказывать скрытые файлы не забудьте поставить галочку показывать системные файлы. Когда меняете ключи в реестре, то ,что нужно сделать для XP делаете тоже. В папке c:\Users есть еще одна символьная ссылка «Все пользователи» она такая же как и «All Users» ее тоже копировать в начале не надо, а потом когда прописываете ссылки пишите (писать нужно в консоли «Выполнить…» ->пишите cmd потом вводите команды): mklink /j «d:\Users\Все пользователи» c:\ProgramData Также есть символьная ссылка выглядит, как папка, на диске С:\ «Documents and settings», ее нужно переименовать как хотите и добавить новую ссылку mklink «с:\Documents and settings» d:\Users После перезагрузки меняем настройки безопасности новой папки и пользователей … возвращаем в реестре все ключи обратно … и удаляем папки C:\Users и С:\Documents and Settings. У меня все получилось и работает!

начал делать на Win2008 R2 вроде на основе Win7 все делается … но говорит «mklink» имя не верное, попробовал «linkd» тоже не пашет где взять исполняемый файл?

и причем «C:\Users» немогу переименовать в проводнике отображает «User-old», a в строке пути «C:\Users», а в ТоталКомандере вообще жму переименовать печатаю «User-old», а он не переименовывает, оставляет просто «Users»

о а теперь у меня как у Rusya_1607 ссылку на c:\user нельзя переделать т.к. переименовать не удается в проводнике переименовываю папка название отображает новое, но в адресной остается старое название, в тоталкомандере пишет «снимите защиту записи» как ее снять?

>о а теперь у меня как у Rusya_1607 ссылку на c:\user нельзя переделать т.к. переименовать не удается в проводнике переименовываю папка название отображает новое, но в адресной остается старое название, в тоталкомандере пишет «снимите защиту записи» как ее снять?

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

А вообще давай подробнее. Буквально какие этапы инструкции получились, где затырка и что конкретно пытаешься делать.

Подскажите пожалуйста, вроде бы всё сделал по вашей инструкции, но всё равно, если старые пользователи создают что нибудь у себя на рабочем столе, то это всё сохраняется на том же диске C:\Users. а вот когда создаются новые пользователи, то всё работает нормально. почему это происходит?

Также как и на Vista — из командной строки c помощью утилиты mklink.
Да, чтобы ссылка нормально создалась, папку c:\users надо удалить (или переименовать), т.е. нельзя создать ссылку поверх существующей папки.

У меня 20 пользователей, и их всех нужно перенести на другой диск. я скопировал папку c:\Users на другой диск, попробовал поэкспериментировать с одним пользователем, и он оказался удачным, но когда я стал проделывать все остальные действия с другими пользователями, у меня ничего не вышло. создаются какие то папки по названием ТЕМР. что нужно сделать что бы у меня всё получилось?

Я тебя не совсем понял…
«но когда я стал проделывать все остальные действия с другими пользователями» — это что ты имеешь в виду?
Символьную ссылку создать получилось??

получились только эти ссылки
mklink /j «d:\Users\All Users» c:\ProgramData

mklink /j «d:\Users\Default User» d:\Users\Default

Вкладка «Безопасность» доступна в Windows XP Home Edition в Безопасном режиме.

+++++++++++++++++++++++++++++++++

Я не совсем понял у каких папок профилей нужно менять опции: у тех, которые находятся на Локальном диске или у папок профилей, которые находятся на диске E:\ ?

Если у меня две учётных записи с правами Администратора («1» и «Nadezhda»), значить ли это, что мне нужно сменить опции только этих двух папок и не менять опции папок: «All Users», «Default User», «LocalService», «NetworkService», а также не изменять права безопасности у папок находящихся внутри папок пользователей «1» и «Nadezhda»?

Какие опции нужно сменить мне в закладке «Безопасность»?
http://fotki.yandex.ru/users/makukhin-82/album/97219?p=0

Менять надо на E: и только для папок верхнего уровня (1, Nadezhda), подпапки унаследуют разрешения.
Проверить и изменить настройки доступа лучше для всех папок!

Группа SYSTEM — присутствует везде, полный доступ.
Группа Администраторы — присутствует везде, полный доступ.
Группа Пользователи — убрать отовсюду кроме All Users и Default User.
Также желательно добавить учетные записи пользователей для соответствующих папок. Например к папке Nadezhda добавить пользователя Nadezhda с правами полного доступа.
Для All Users — добавить группу Опытные пользователи с полным доступом и группы Пользователи, ВСЕ с правами только на чтение (Чтение и выполнение, Список содержимого папки, Чтение)
Для Default User — добавить группы Опытные пользователи, Пользователи, ВСЕ с правами только на чтение.
LocalService, NetworkService — только группы SYSTEM и Администраторы с правами полного доступа.

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

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


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