Можно сделать через групповые политики и перемещаемые профили, но проще всего перенести ветку реестра:
и папки пользователей копированием.
Ситуация 2. Переносим профили на другой диск.
Зачем это надо? Для терминального сервера. За несколько лет размер занятого пространства диска C:\ (загрузочного раздела) может вырасти до сотен гигабайт и возникнут проблемы с резервным копированием, как это получилось у меня. Расчищая диск C:\ сразу увидел, что профили занимают больше 100GB. И квоты в общем-то тут не решат ситуацию, если квоты вообще допустимы для данной организации. Если пользователи работают с тонких клиентов и терминальный сервер получается единственным местом для хранения их информации, то объём этой информации будет расти и расти.
Кроме этого перенос профилей логически обоснован — для файлов профилей нужно индексирование поиска и теневые копии, для системных файлов индексирование не нужно, теневые копии.. даже не могу представить в какой ситуации это может быть востребовано. Для папок профилей бекап желателен, для загрузочного раздела — бекап необходим и большой суммарный объём профилей на этом же разделе сильно мешает, как уже говорил выше.
Первый вариант
Если система только-только установлена меняем значение ProfilesDirectory — «%SystemDrive%\Users» на новое расположение, в ветке реестра:
профиль Администратора останется на старом месте, новые уже будут созданы по новому пути. Этого вполне достаточно. Однако при таком методе возможны проблемы при обновлении системы в дальнейшем.
Второй вариант
Другой вариант когда система относительно свежая, но уже есть пользователи и программы. В этом случае некоторые программы, например MS Office, прописали абсолютные пути к профилям на диске C:\. Тогда лучше переместить все профили скриптом и создать символическую ссылку папки Users на новое месторасположение, загрузившись с установочного диска в командную строку:
если в указании пути будет пробел, то нужно заключить путь в кавычки. Можно дополнить ключом перезагрузки:
и пойти пить чай.
В реестре при этом менять ничего не надо и в этом большой плюс этого метода — система «думает», что все по прежнему на диске C:/ и корректно работает через символическую ссылку. Проверить можно набив путь к профилю пользователя как C:\Users\»какой-то пользователь» и откроется он именно как C:\Users. , а не как D:\Users. . (при переносе на D).
Установка разрешений
После переноса папок профилей для каждой из них нужно обязательно отключить наследование разрешений и поменять разрешения безопасности на следующие:
System — Полный доступ;
Administrators — Полный доступ;
Учётка пользователя — Полный доступ;
Больше ничего быть не должно.
Для самой папки Users разрешения следующие:
System — Полный доступ;
Administrators — Полный доступ;
Users — Чтение/Выполнение;
Все — Чтение/Выполнение.
То есть для корректной работы системы все разрешения в новом расположении должны соответствовать разрешениям, какие были на диске C:\. Это важно.
Если же система довольно старая, профили по несколько гигабайт, пользоваться скриптом не рекомендую, лучше делать руками и не копировать, а перемещать, контролируя начальный размер папки профиля и размер перенесенного. В этом случае, это понятно и очевидно, ссылку для всей папки C:/Users создать нельзя, так как в ней есть открытые файлы нашего текущего профиля. Профили переносятся отдельно. Ссылка создаётся для каждого профиля отдельно. Свой профиль либо можно оставить и не переносить, либо перенести, временно создав второго админа. Создать, залогиниться под ним, перенести свой профиль, создать ссылку, установить разрешения, разлогиниться, зайти под собой, убить второго админа.
Одно замечание — при создании символических ссылок сразу проверяйте их работоспособность. Особенно когда ссылок создается сразу много.
Решение проблем
Возможные проблемы при копировании/переносе заключается в отсутствии доступа к какому-либо файлу:
Нет прав на каталог;
Блокировка файла процессом;
Невозможность удаления файла.
Если нет прав на каталог, тогда нужно стать владельцем контейнера и входящих в него объектов:
затем добавить себе полные права на контейнер и заменить наследуемые разрешения для потомков. После этого можно переносить/удалять.
Если блокировка процессом, тогда рекомендую программу Unlocker — много вирусов под видом этой программы, поэтому предлагаю скачать с моего Google Drive (версия 1.9.2).
Невозможность удаления файла проявляется в основном файлами нулевого размера с точкой в конце имени файла. При попытке удаления появляется ошибка:
В этой ситуации отлично помогает Far Manager, находите файл и нажимаете Alt-Del, затем кнопку «Wipe».
Все изложенное опробовано в «боевых условиях» продакшена. Пока «полет нормальный», если возникнет ещё что-то, тогда напишу дополнение.
Дополнение от 14.06.2016
Оказалось, что если диск с символической ссылкой, созданной с ключом /D, открыт как сетевой на другом компьютере, то переход по данной ссылке заканчивается ошибкой: — «Символическая ссылка не может быть загружена, так как её тип отключен». Для устранения данной ошибки ссылку нужно пересоздать с ключом /J (junction).
Дополнение от 15.06.2016
Папка Users на диске C:/ была заменена символической ссылкой на другой диск, при этом в реестре ничего не менялось. Обновление с Windows 2008 до 2008 R2 прошло успешно. Установка заменила символическую ссылку на папку и создала в ней дефолтные профили всех пользователей. После установки удалил данную папку и пересоздал ссылку.
Я тут сейчас скапитаню, но раз уж у вас серверные ОС, может развернуть роль службы каталогов на той машине, откуда нужно перенести пользователей, локальные пользователи конвертнутся в доменных, потом включить вторую машину в домен и вуаля? »
Потребовалось ввести в строй новый сервер терминалов в замен уставшего (по аппаратной части) Windows сервера. На старом сервере был организован доступ по RDP протоколу к удаленным рабочим столам. Профили пользователей не перемещаемые, хранились на нем же. Соответственно появилась задача перенести учетные записи и профили пользователей на новый сервер в очень короткое время. Да этого для разовых миграций я использовал неплохую утилиту Transwiz, в основном для переноса профиля с Windows 7 на Windows 10. Однако перекидывать десятки пользователей с ее помощью я не стал. Более того я был уверен, что есть способ быстрее и проще. Поэтому после удачного переноса учетных записей и профилей пользователей, решил поделиться с вами простым решением.
Нам потребуется:
Администраторская учетная запись.
Способ копирования файлов с сохранением всех атрибутов. Я выбрал Total Commander
Новый Windows сервер с настроенными ролями
Перезагружаем исходный сервер в безопасный режим с поддержкой сети. msconfig—>Boot (Загрузка), устанавливаем галки «Безопасный режим» и «Сеть»
Монтируем системный раздел нового сервера (для удобства).
Пример:
С помощью редактора реестра (regedit) экспортируем куст реестра всех профилей: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList]
Либо выборочно из этого раздела. Какому пользователю принадлежит запись, можно понять по строке ProfileImagePath. Копируем получившийся reg файл на новый сервер и там же запускаем его. Далее с помощью Total Commandera копируем профиль(и) на новый сервер, поставив галку — Копировать права доступа: На всякий случай перезагружаем новый сервер. Пробуем залогиниться перенесенным пользователем — должно работать.
На старом сервере, так же через msconfig не забудьте отключить «Безопасный режим»
В заключении хочу еще зраз упомянуть утилиту Transwiz, точнее производителя ее. Дело в том, что помимо этой утилиты у них есть еще хорошая утилита User Profile Wizard. С помощью которой можно локальную учетную запись перенести в доменную. Или перенести учетную запись из одного домена в другой.
Перенос папки профилей пользователей (Users) в ОС Windows server 2008 r2 на этапе установки
Иногда, в меру ряда причин, остро встает задача переноса папки профилей пользователей с системного диска на другой логический или физический диск, например:
Необходимость разделения оперативной информации (система) и архивных данных (данные пользователей) обусловленная, к примеру, необходимостью хранения системных файлов на высокоскоростном, но менее надежном массиве дисков RAID0;
Отсутствие необходимости дополнительного переноса информации при переустановке ОС.
По сравнению с переносом отдельного профиля пользователя перенос папки Users более предпочтителен, поскольку профили всех последующих пользователей компьютера будут также сохранены в нужном месте, и не будет необходимости снова проделывать процедуру переноса.
Одним из наиболее правильным методов осуществления такого переноса является возможность определения месторасположения папки профилей пользователей на этапе установки системы. Такую возможность в отношении Windows server 2008 r2 нам предоставляет Microsoft под названием Audit Mode. Подробнее об этом режиме можно почитать в следующей статье. Единственный нюанс, то, что в статье написано не подходит для сервера, т.к. в нем нет экрана на котором предлагают назвать компьютер и создать пользователя. Хотя на самом деле для серверной версии все оказалось на много проще. И так, потратив некоторое время на поиск решения, появился следующий сценарий.
Теперь собственно о сценарии переноса папки Users:
Необходимо создать файл ответов и положить его в корень флешки. Загрузить для х64
Перед началом установки нужно правильно установить диски. Определение в системе начинается с порта с меньшим номером. На первый мы устанавливаем ОС, на втором у нас будут находиться папки профилей.
Начните установку Windows server 2008 r2, на этапе настройки дисков, отформатируйте оба диска (обязательно оба. ). И укажите установку на первый.
После того как началось копирование файлов, подключаем флешку в корне которой лежит файл ответов. ( не знаю почему, но если ее подключить сразу ничего не получается)
Дожидаемся окончания установки, входим в систему и видим папки Users и ProgramData на диске который мы указали в файле ответов, в данном случае диск D:\
Для предотвращения ошибок, связанных с явным указанием прежних путей папок профилей пользователей создадим при помощи утилиты mklink две символические ссылки:
Так как я собирал сервер на дисках SSD, то решил перенести папку временных файлов то же на диск D, по этому в настройках расположения временных папок я указал путь D:\Temp и создал еще одну ссылку:
mklink /D C:\Temp D:\Temp (в принципе она не обязательна, на всякий случай)
Таким образом теперь даже при обращении по прежним путям любая программа не заметит подмены и будет работать с папками на диске C, хотя фактически они будут расположены в настроенном Вами месторасположении.
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.