пятница, 7 сентября 2012 г.

Перенос папки профилей пользователей (Users) в ОС Windows 7. Часть 1: На этапе установки

Это не моя статья, но считаю её очень полезной, поэтому размещаю исправленную и дополненную копию.

Задача переноса папки профилей пользователей с системного диска на другой логический или физический диск в ОС семейства Windows стоит весьма остро по ряду причин:
  • Необходимость разделения оперативной информации (система) и архивных данных (данные пользователей) обусловленная, к примеру, необходимостью хранения системных файлов на высокоскоростном, но менее надежном массиве дисков RAID0.
  • Отсутствие необходимости дополнительного переноса информации при переустановке ОС.
  • По сравнению с переносом отдельного профиля пользователя перенос папки Users более предпочтителен, поскольку профили всех последующих пользователей компьютера будут также сохранены в нужном месте, и не будет необходимости снова проделывать процедуру переноса.

Одним из наиболее изящных и рациональных методов осуществления такого переноса является возможность определения месторасположения папки профилей пользователей на этапе установки системы. Такую возможность в отношении ОС Windows 7 нам предоставляет Microsoft под названием Audit Mode. Подробнее об этом режиме можно почитать в следующей статье.

Теперь собственно о сценарии переноса папки Users:
  1. Следует произвести обычную установку Windows 7 любым удобным для Вас способом остановившись на шаге, где программа установщик попросит Вас ввести имя компьютера и имя пользователя.


  2. Находясь на экране ввода имени компьютера и имени пользователя нажмите сочетание клавиш CTRL + SHIFT + F3. Компьютер будет перезагружен и загрузится уже в режиме Audit Mode. При этом система будет находится в этом режиме до тех пор, пока Вы не запустите утилиту sysprep с ключом /oobe или не выберете соответствующий пункт в оконной версии этой утилиты, которая стартует в Audit Mode каждый раз при запуске системы.


  3. Поскольку на этот момент Вы уже будете иметь установленную, но не до конца настроенную Windows 7, перед тем как назначать новое месторасположение для папки профилей пользователей, необходимо сперва подготовить дисковую подсистему, то есть произвести создание и форматирование раздела, которые планируется использовать для размещения папки Users.

  4. Теперь необходимо сформировать конфигурационный файл для настройки местоположения папки Users, вот его содержимое:

    Версия для x86 (загрузить):
    <?xml version="1.0" encoding="utf-8"?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
     <settings pass="oobeSystem">
      <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="x86" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <FolderLocations>
        <ProfilesDirectory>D:\Users</ProfilesDirectory>
        <ProgramData>D:\ProgramData</ProgramData>
       </FolderLocations>
      </component>
     </settings>
    </unattend>

    Версия для x64 (загрузить):
    <?xml version="1.0" encoding="utf-8"?>
    <unattend xmlns="urn:schemas-microsoft-com:unattend">
     <settings pass="oobeSystem">
      <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <FolderLocations>
        <ProfilesDirectory>D:\Users</ProfilesDirectory>
        <ProgramData>D:\ProgramData</ProgramData>
       </FolderLocations>
      </component>
     </settings>
    </unattend>

    Сохраните его под любым именем, например, unattend.xml.

    Внимание! Файл должен сохранён в кодировке UTF-8 (а для тех кто понимает UTF8 + BOM).


  5. Окно с заголовком "Программа подготовки системы 3.14" нужно закрыть. Иначе при выполнении указанной далее команды получите ошибку: "Уже выполняется другая копия этого приложения".

    Файл "unattend.xml" лучше сохранить на жёстком диске, а не на флешке, потому что при использовании этого файла при следующей перезагрузке флешка ещё не будет подключена и система сообщит об ошибке и будет постоянно перезагружаться. Весь процесс установки придётся начать сначала. Предположим, что файл unattend.xml был сохранен в корне диска C, тогда команда для его применения будет выглядеть следующим образом:

    C:\Windows\System32\sysprep\sysprep.exe /oobe /reboot /unattend:C:\unattend.xml


    Компьютер будет перезагружен.

    Если файл сохранён НЕ в кодировке UTF-8 (о чём писалось выше), то получите следующую ошибку: "Произошла неустранимая ощибка при выполнении программы Sysprep на компьютере."


  6. Вернувшись к окну задания имени компьютера и имени пользователя проведите установку до конца.

  7. После загрузки компьютера убедитесь, что папки D:\Users и D:\ProgramData существуют и что папка пользователя, имя которого Вы задали на финишном этапе установки находится в D:\Users.

В качестве бонуса также можно воспользоваться достоинствами так называемых junction points для предотвращения ошибок, связанных с явным указанием прежних путей папок профилей пользователей. Для этого создадим при помощи утилиты mklink две символические ссылки (выполнить c правами администратора):

mklink /J C:\Users D:\Users
mklink /J C:\ProgramData D:\ProgramData

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

Для совместимости работы некоторых приложений с Windows XP рекомендую сделать следующую символическую ссылку:
mklink /J "C:\Documents and Settings" D:\Users

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


Поэтому я рекомендую после установки Windows и после создания профилей пользователей (для этого нужно один раз интерактивно войти под каждым пользователем), создать образ системы на диске C:. В случае сбоя, Вы разворачиваете систему из образа, в которой профили пользователей привязаны к своим папкам, и проблемы описанной абзацем выше не будет.

2 комментария:

  1. Диск D при установки не будет форматироваин?

    ОтветитьУдалить
    Ответы
    1. Если он уже существовал до установки Windows 7, то автоматически отформатирован не будет. Единственный вариант - вручную.

      Удалить