Перенести профиль пользователя на другой диск windows 2012

Как правильно перенести User profile disk на Windows 2012R2.  Необходимо переместить из одного места  в другое. При копировании диска  пользователя в другое место,то при входе у пользователя  создается временный профиль.Простым копированием с одного места в другое не получиться.Как переместить и  чтобы User profile disk монтировался пользователю.
  • Remove From My Forums
  • Вопрос

  • Как правильно перенести User profile disk на Windows 2012R2.
     Необходимо переместить из одного места  в другое. При копировании диска  пользователя в другое место,то при входе у пользователя

     создается временный профиль.Простым копированием с одного места в другое не получиться.Как переместить и  чтобы User profile disk монтировался пользователю.

Ответы

  • Копированием диска должно проходить нормально.

    Порядок действий:

    1. Убедиться, что у пользователей нет активных сессий

    2. В свойствах коллекции отключить использование дисков пользователей

    3. В свойствах коллекции включить использование дисков пользователей с новыми параметрами, то есть
    \NewServerNewShare

    4. Скопировать диск пользователя из старого каталога в новый.

     

    • Помечено в качестве ответа

      15 апреля 2015 г. 19:21

  • Так все верно. Но необходимо перед копированием проверить нет активных сессий. Также или отключении диски пользователей.
    Лучше проверить программой Sidder
    https://gallery.technet.microsoft.com/Sidder-Quickly-see-which-fa6360b3

    • Помечено в качестве ответа
      momiko_misha
      15 апреля 2015 г. 19:28

Ситуация 1. Переносим профили на другой сервер.

Можно сделать через групповые политики и перемещаемые профили, но проще всего перенести ветку реестра:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList

и папки пользователей копированием.

Ситуация 2. Переносим профили на другой диск.

Зачем это надо? Для терминального сервера. За несколько лет размер занятого пространства диска C: (загрузочного раздела) может вырасти до сотен гигабайт и возникнут проблемы с резервным копированием, как это получилось у меня. Расчищая диск C: сразу увидел, что профили занимают больше 100GB. И квоты в общем-то тут не решат ситуацию, если квоты вообще допустимы для данной организации. Если пользователи работают с тонких клиентов и терминальный сервер получается единственным местом для хранения их информации, то объём этой информации будет расти и расти.

Кроме этого перенос профилей логически обоснован — для файлов профилей нужно индексирование поиска и теневые копии, для системных файлов индексирование не нужно, теневые копии.. даже не могу представить в какой ситуации это может быть востребовано. Для папок профилей бекап желателен, для загрузочного раздела — бекап необходим и большой суммарный объём профилей на этом же разделе сильно мешает, как уже говорил выше.

Первый вариант

Если система только-только установлена меняем значение ProfilesDirectory «%SystemDrive%Users» на новое расположение, в ветке реестра:

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList

профиль Администратора останется на старом месте, новые уже будут созданы по новому пути. Этого вполне достаточно. Однако при таком методе возможны проблемы при обновлении системы в дальнейшем.

Второй вариант

Другой вариант когда система относительно свежая, но уже есть пользователи и программы. В этом случае некоторые программы, например MS Office, прописали абсолютные пути к профилям на диске C:. Тогда лучше переместить все профили скриптом и создать символическую ссылку папки Users на новое месторасположение, загрузившись с установочного диска в командную строку:

robocopy C:Users D:Users /E /COPYALL /XJ 
rmdir C:Users /S /Q 
mklink /D C:Users D:Users

если в указании пути будет пробел, то нужно заключить путь в кавычки. Можно дополнить ключом перезагрузки:

Shutdown -r -f -t 00

и пойти пить чай.

В реестре при этом менять ничего не надо и в этом большой плюс этого метода — система «думает», что все по прежнему на диске C:/ и корректно работает через символическую ссылку. Проверить можно набив путь к профилю пользователя как C:Users»какой-то пользователь» и откроется он именно как C:Users….., а не как D:Users…. (при переносе на D).

Установка разрешений

После переноса папок профилей для каждой из них нужно обязательно отключить наследование разрешений и поменять разрешения безопасности на следующие:

  1. System — Полный доступ;
  2. Administrators — Полный доступ;
  3. Учётка пользователя — Полный доступ;
  4. Больше ничего быть не должно.

Перенос профиля пользователя

Для самой папки Users разрешения следующие:

  1. System — Полный доступ;
  2. Administrators — Полный доступ;
  3. Users — Чтение/Выполнение;
  4. Все — Чтение/Выполнение.

То есть для корректной работы системы все разрешения в новом расположении должны соответствовать разрешениям, какие были на диске C:. Это важно.

Если же система довольно старая, профили по несколько гигабайт, пользоваться скриптом не рекомендую, лучше делать руками и не копировать, а перемещать, контролируя начальный размер папки профиля и размер перенесенного. В этом случае, это понятно и очевидно, ссылку для всей папки C:/Users создать нельзя, так как в ней есть открытые файлы нашего текущего профиля. Профили переносятся отдельно. Ссылка создаётся для каждого профиля отдельно. Свой профиль либо можно оставить и не переносить, либо перенести, временно создав второго админа. Создать, залогиниться под ним, перенести свой профиль, создать ссылку, установить разрешения, разлогиниться, зайти под собой, убить второго админа.

Одно замечание — при создании символических ссылок сразу проверяйте их работоспособность. Особенно когда ссылок создается сразу много.

Решение проблем

Возможные проблемы при копировании/переносе заключается в отсутствии доступа к какому-либо файлу:

  1. Нет прав на каталог;
  2. Блокировка файла процессом;
  3. Невозможность удаления файла.

Если нет прав на каталог, тогда нужно стать владельцем контейнера и входящих в него объектов:

Перенос профиля пользователя

затем добавить себе полные права на контейнер и заменить наследуемые разрешения для потомков. После этого можно переносить/удалять.

Если блокировка процессом, тогда рекомендую программу Unlocker — много вирусов под видом этой программы. Попробуйте вот эту версию, должна быть без вирусов.

Невозможность удаления файла проявляется в основном файлами нулевого размера с точкой в конце имени файла. При попытке удаления появляется ошибка:

Перенос профиля пользователя

В этой ситуации отлично помогает Far Manager, находите файл и нажимаете Alt-Del, затем кнопку «Wipe».

Перенос профиля пользователя

Все изложенное опробовано в «боевых условиях» продакшена. Пока «полет нормальный», если возникнет ещё что-то, тогда напишу дополнение.

Дополнение от 14.06.2016

Оказалось, что если диск с символической ссылкой, созданной с ключом /D, открыт как сетевой на другом компьютере, то переход по данной ссылке заканчивается ошибкой: — «Символическая ссылка не может быть загружена, так как её тип отключен». Для устранения данной ошибки ссылку нужно пересоздать с ключом /J (junction).

Дополнение от 15.06.2016

Папка Users на диске C:/ была заменена символической ссылкой на другой диск, при этом в реестре ничего не менялось. Обновление с Windows 2008 до 2008 R2 прошло успешно. Установка заменила символическую ссылку на папку и создала в ней дефолтные профили всех пользователей. После установки удалил данную папку и пересоздал ссылку.

0 / 0 / 0

Регистрация: 11.12.2011

Сообщений: 79

1

Server 2012

Как сделать так, чтобы терминальные пользователи и их файлы хранились на соседнем диске?

08.02.2016, 12:44. Показов 24310. Ответов 32


Добрый день!
Помогите пожалуйста разобраться, имеется сервер, общее кол-во пользователей около 30
Сама ОС установлена на SSD (250 GB)
Есть еще диск на 2 TB (на данный момент пустой)

Как же сделать так чтоб терминальные пользователи и их файлы в том числе и рабочий стол, хранились на соседнем диске (2TB)

Windows server 2012 R2

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

08.02.2016, 16:23

2

Цитата
Сообщение от Беша
Посмотреть сообщение

ак же сделать так чтоб терминальные пользователи и их файлы в том числе и рабочий стол, хранились на соседнем диске

Прочитайте про технологию User Profile Disks (UPD, диски профилей пользователей)



0



Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

09.02.2016, 09:55

3

Некоторые хитрости при переустановке ОС пост №5.
Правда в описываемом мною методе перенос профилей делается на стадии установки ОС.



0



0 / 0 / 0

Регистрация: 11.12.2011

Сообщений: 79

17.02.2016, 16:14

 [ТС]

4

Цитата
Сообщение от Maks
Посмотреть сообщение

Некоторые хитрости при переустановке ОС пост №5.
Правда в описываемом мною методе перенос профилей делается на стадии установки ОС.

При установке Windows Server 2012 проделывать все эти манипуляции? Или надо всем переустановить винду?



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

17.02.2016, 16:28

5

Вы же спрашивали:

Цитата
Сообщение от Беша
Посмотреть сообщение

Как же сделать так чтоб терминальные пользователи и их файлы в том числе и рабочий стол, хранились на соседнем диске (2TB)

Поэтому все данные вам советы касаются перенастройки только сервера… профиль на клиентских ПК, где был там и останется.

А чем вас не устроило включение режим «User Profile Disks» на RDS-сервере? Переустанавливать ОС для этого не надо…



0



0 / 0 / 0

Регистрация: 11.12.2011

Сообщений: 79

17.02.2016, 16:34

 [ТС]

6

Цитата
Сообщение от KDE777
Посмотреть сообщение

А чем вас не устроило включение режим «User Profile Disks» на RDS-сервере? Переустанавливать ОС для этого не надо…

У меня теперь не создаются папки пользователей на сервере при создании пользователя, папка создается на локальном компьютере, это нормально?

Меня устроило, просто пока не разобрался.



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

17.02.2016, 16:44

7

Цитата
Сообщение от Беша
Посмотреть сообщение

У меня теперь не создаются папки пользователей на сервере при создании пользователя, папка создается на локальном компьютере, это нормально?

Не понял о чём вы — где именно вы создаёте пользователя и какие при этом должны создаваться папки? Вы о «Домашней папке» или «Перемещаемом профиле» для AD-пользователя?

Цитата
Сообщение от Беша
Посмотреть сообщение

просто пока не разобрался

Как сказано в статье «Настройка UPD намного проще чем процесс настройки перемещаемых профилей и перенаправляемых папок» — и это пожалуй верно, т.к. ничего проще для размещения всех новых профилей на другом диске у терминального сервера, по моему ни сделать…



0



0 / 0 / 0

Регистрация: 11.12.2011

Сообщений: 79

17.02.2016, 16:47

 [ТС]

8

Цитата
Сообщение от KDE777
Посмотреть сообщение

Не понял о чём вы — где именно вы создаёте пользователя и какие при этом должны создаваться папки? Вы о «Домашней папке» или «Перемещаемом профиле» для AD-пользователя?

Нет, например создаю в AD пользователя Иван Иванов имя для входа «Ivan» и на диске C в папке «Пользователи» не создается папка Ivan она создается на компьютере с которого заходишь под этой учёткой.
Простите что не по теме.



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

17.02.2016, 17:13

9

Цитата
Сообщение от Беша
Посмотреть сообщение

и на диске C в папке «Пользователи» не создается папка Ivan она создается на компьютере с которого заходишь под этой учёткой.

Ещё раз — вы заходите на терминальный сервер AD-пользователем mydomainivan, а на сервере его профиль не создаётся??? И при этом профиль создаётся на клиенте, откуда запускалось «Подключение к удалённому рабочему столу»?

А в какой тогда профиль он попадает? Выполните (на терминальном сервере) в cmd [cd %USERPROFILE%] или просто создайте файл на рабочем столе и посмотрите его свойства — какой будет указан путь?

Добавлено через 2 минуты

Цитата
Сообщение от KDE777
Посмотреть сообщение

она создается на компьютере с которого заходишь под этой учёткой

Может вы %windir%system32mstsc.exe (Подключение к удаленному рабочему столу) запускаете от имени mydomainivan? Тогда да — на доменном ПК создастся профиль этого Ивана…



0



0 / 0 / 0

Регистрация: 11.12.2011

Сообщений: 79

17.02.2016, 17:59

 [ТС]

10

Цитата
Сообщение от KDE777
Посмотреть сообщение

Ещё раз — вы заходите на терминальный сервер AD-пользователем mydomainivan, а на сервере его профиль не создаётся??? И при этом профиль создаётся на клиенте, откуда запускалось «Подключение к удалённому рабочему столу»?

Все, всё получилось. Создалась папка, туплю, простите)
Убежал делать UPD, отпишу обязательно, сегодня вряд ли успею конечно

Добавлено через 34 минуты
KDE777, подскажите пожалуйста, начал делать, но даже не получается установить службу удаленных рабочих столов
«Добавить роли и компоненты — установка служб удаленных рабочих столов — быстрый запуск — развертывание рабочих столов на основе сеансов — выбор сервера — развернуть»
Сразу выдает «Не удалось установить службы ролей»

Добавлено через 9 минут
KDE777, а вообще проще сначала спросить, то что Вы порекомендовали можно сделать если не куплены еще клиентские лицензии и windows server ознакомительный на 180 дней?



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

17.02.2016, 18:39

11

Так у вас ещё RDS роль не развёрнута… т.е. сервер ещё совсем не терминальный

Цитата
Сообщение от Беша
Посмотреть сообщение

начал делать, но даже не получается установить службу удаленных рабочих столов

Этот сервер добавлен в домен?

Вот пошаговые руководства по добавлению RDS-роли:
https://beardedsysadmin.wordpr… in-domain/

Цитата
Сообщение от Беша
Посмотреть сообщение

можно сделать если не куплены еще клиентские лицензии и windows server ознакомительный на 180 дней

Не вижу того, что может помешать. У вас 180 дней на использование сервера + RDS роль может 120 дней (grace period) работать без клиентских лицензий…



0



Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

18.02.2016, 06:18

12

Цитата
Сообщение от Беша
Посмотреть сообщение

При установке Windows Server 2012 проделывать все эти манипуляции? Или надо всем переустановить винду?

Это делается на ПК, которым требуется перенести профили на другой раздел/диск.



0



0 / 0 / 0

Регистрация: 11.12.2011

Сообщений: 79

19.02.2016, 14:55

 [ТС]

13

Цитата
Сообщение от Maks
Посмотреть сообщение

Это делается на ПК, которым требуется перенести профили на другой раздел/диск.

Слишком много ПК для этого способа

Цитата
Сообщение от KDE777
Посмотреть сообщение

Этот сервер добавлен в домен?

Да



0



Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

19.02.2016, 15:00

14

Цитата
Сообщение от Беша
Посмотреть сообщение

Слишком много ПК для этого способа

В первом посту речь шла о сервере.
У себя на работе я также переношу профили на другой раздел, это существенно экономит время в случае переустановки ОС.



0



0 / 0 / 0

Регистрация: 11.12.2011

Сообщений: 79

19.02.2016, 15:12

 [ТС]

15

Цитата
Сообщение от KDE777
Посмотреть сообщение

Не хочет зараза(

Миниатюры

Как сделать так, чтобы терминальные пользователи и их файлы хранились на соседнем диске?
 



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

19.02.2016, 15:17

16

Цитата
Сообщение от Беша
Посмотреть сообщение

Не хочет зараза(

А вы не на контроллере домена пытаетесь развернуть RDS-роль? Если да, то формально в 2012 сервере так делать нельзя.

Вот неофициальное руководство, как это обойти. Но делать так не лучшая идея…



0



0 / 0 / 0

Регистрация: 11.12.2011

Сообщений: 79

19.02.2016, 15:20

 [ТС]

17

Цитата
Сообщение от KDE777
Посмотреть сообщение

А вы не на контроллере домена пытаетесь развернуть RDS-роль? Если да, то формально в 2012 сервере так делать нельзя.

Да один сервер, он контроллер домена и на нем же хочу удаленные рабочие столы.
Чтоб пользователи (до 10) заходили по удаленке в 1С и всё, даже рабочие столы им не нужны по сути. Просто подключение по удаленке и сразу запуск 1С



0



Модератор

Эксперт по компьютерным сетямЭксперт HardwareЭксперт Windows

6871 / 3818 / 477

Регистрация: 13.03.2013

Сообщений: 14,059

Записей в блоге: 9

19.02.2016, 15:53

18

Цитата
Сообщение от Беша
Посмотреть сообщение

Чтоб пользователи (до 10) заходили по удаленке в 1С и всё, даже рабочие столы им не нужны по сути. Просто подключение по удаленке и сразу запуск 1С

RemoteApp в помощь.



0



1882 / 1106 / 426

Регистрация: 22.01.2016

Сообщений: 3,050

19.02.2016, 16:09

19

Цитата
Сообщение от Беша
Посмотреть сообщение

Да один сервер, он контроллер домена

Ну, ссылку я вам дал. Сам так не пробовал и что-то советовать про RDS на DC не могу…

Добавлено через 14 минут

Цитата
Сообщение от Maks
Посмотреть сообщение

RemoteApp в помощь.

А сами пробовали RemoteApp на DC?

https://support.microsoft.com/ru-ru/kb/2833839

This configuration, will provide desktop sessions to users based on the number of Remote Desktop Services client access license (RDS CALs) installed on the server, but will not provide access to RemoteApp programs or the RDWeb site.

Вот удалённый рабочий стол ещё можно получить…



0



0 / 0 / 0

Регистрация: 11.12.2011

Сообщений: 79

19.02.2016, 17:17

 [ТС]

20

Цитата
Сообщение от KDE777
Посмотреть сообщение

Вот неофициальное руководство, как это обойти. Но делать так не лучшая идея…

тоже ошибка ошибка ошибка…не разворачиваются указанные роли и службы.

Может есть другой способ?
Я например добавил пользователя AD и добавил его в группу удаленных рабочих столов, присоединился к домену на локальном ПК, зашел под учеткой созданной в AD, запустил RDP, вписал IP адрес сервера нажал подключиться, и зашел на сервер.
Это не то? Не так должно быть? Простите за глупые возможно вопросы, первый раз это делаю.

Пойду пока снесу винду, поставлю заново, может в ней косяк какой.



0



User Profile Disks (UPD, диски профилей пользователей) позволяет хранить профиль каждого пользователей Remote Desktop Services (
%USERPROFILE%
) в отдельном виртуальном VHDX диске. Такой профиль подключается при входе пользователя в Windows и отключается при выходе (с сохранением изменений в профиле). User Profile Disks можно хранить на внешнем файловом ресурсе, благодаря чему пользователь может получить доступ к своему окружению (профили) при входе на любой сервер фермы RDS. UPD диски представляют собой альтернативу использованию технологий перемещаемых профилей (roaming profile) и перенаправления папок (folder redirection) в терминальных сценариях RDS.

В этой статье мы рассмотрим особенности настроить и использовать профили User Profile Disks на серверах с ролью Remote Desktop Services на Windows Server 2022/2019/2016/2012R2.

Содержание:

  • Настройка User Profile Disks в Windows Server RDS
  • VHDX файлы с UPD профилями пользователей RDS
  • Как расширить/сжать диск User Profile Disk с помощью PowerShell?
  • Временный профиль при использовании User Profile Disk в RDS

Настройка User Profile Disks в Windows Server RDS

Создайте общую сетевую папку для хранения файлов профилей UPD. Эту папку нужно разместить на любом файловом сервере за пределами фермы RDS ( рекомендуем расположить сетевую папку на кластере для обеспечения высокой доступности UPD профилей). В нашем примере, путь к такому каталогу будет выглядеть так:
\srv01RDSProfiles
.

Создайте в AD группу безопасности, в которую нужно включить все хосты в вашей RDS коллекции. МОжете создать группу с помощью графической консоли ADUC или с помощью PowerShell командлетов из модуля Active Directory for Windows PowerShell:
New-ADGroup mskRDSHCollection1 -path "OU=Groups,OU=MSK,OU=RU,DC=winitpro,DC=loc" -GroupScope Domain -PassThru –Verbose
Add-AdGroupMember -Identity mskRDSHCollection1 -Members msk-rds1$, msk-rds2$, msk-rds3$

Теперь предоставьте права Full Control на папку \srv01RDSProfiles для группы mskRDSHCollection1.

Настройки доступа к сетевой папке для хранения UPD профилей пользователей

Вы можете включить User Profile Disks в настройках коллекций Remote Desktop при ее создании. Если коллекция уже создана, найдите ее в консоли Server Manager и в верхнем левом углу выберите Tasks-> Edit Properties.

Настройка параметров коллекции RDS

Затем в разделе User Profile Disks включите опцию Enable user profile disks, укажите к созданной ранее сетевой папке (
\srv01RDSProfiles
) и задайте максимальный размер диска с профилем (пусть это будет 7 Гб). Сохраните изменения.

Включить User Profile Disks для коллекции RDS

Допустимо использовать пространство имен DFS для хранения UPD профилей DFS сервера. На DFS хостах нужно использовать Windows Server 2012 R2 или более новые версии. При использовании предыдущих версий Windows Server вы получите ошибку:

Unable to enable user disks on rVHDShare. Could not create template VHD.  Error Message: The network location "\winitpro.runamespaceUPD1" is not available.

Вы можете проверить, что UPD включен для коллекции RDS и получить путь к каталогу, в котором хранятся профиля с помощью команды:

Get-RDSessionCollectionConfiguration -CollectionName mskCorpApp1 –UserProfileDisk

Get-RDSessionCollectionConfiguration: PowerShell настройки UserProfileDisk

Совет. Для каждой RDS коллекции создается только один vhdx файл с UPD профилем пользователя. Если пользователь подключается к хостам из двух разных RDS коллекций, для каждой из них будет создан отдельный vhdx файл.

По умолчанию UPD диск хранит все содержимое профиля пользователя. Вы можете исключить определенные папки из списка синхронизируемых каталогов. Если каталог исключен из профиля, изменения в нем не будут сохраняться в VHDX диске в сетевом каталоге. Доступные две опции:

  • Store all user settings and data on the user profile disk
  • Store only the following folders in the user profile disk

исключить некоторые папки пользователя из перемещаемого профиля UPD

При использовании RDS с UPD на Windows Server 2019/2016 со временем вы можете столкнуться со снижением производительности серверов, появления черного экрана при входе в RDP. Подробно проблема описана здесь. Рекомендуем сразу включить на всех RDS хостах параметр реестра DeleteUserAppContainersOnLogoff:

New-ItemProperty -Path “HKLM:SYSTEMCurrentControlSetServicesSharedAccessParametersFirewallPolicy” -Type DWord -Path -Name DeleteUserAppContainersOnLogoff -Value 1

VHDX файлы с UPD профилями пользователей RDS

После того, как вы изменили настройки коллекции и включили UPD, в целевом каталоге будет создан файл UVHD-template.vhdx.

Этот файл представляет собой шаблон виртуального диска с профилем пользователя. Когда новый пользователей подключается к серверу RDS по RDP, этот шаблон копируется и переименовывается в vhdx файл, содержащий в имени SID пользователя. Для каждого пользователя создается отдельный VHDX файл.

Совет. Информацию о событиях входа пользователей можно отслеживать в журнале Event Viewer -> Application (источник User Profile Service) и Applications and Services Logs -> -Microsoft -> Windows -> User Profile Service -> Operational.

UVHD файлы типа vhdx содержат профили пользователей UPD

Чтобы понять, какому пользователю принадлежит VHDX файл, нужно сопоставить имя UPD файла с именем пользователя. Можно вручную преобразовать SID в имя учетной записи с помощью командлета Get-ADUser:

Get-ADUser -Identity S-1-5-21-305647651-3952524288-2944781117-23711116

Или воспользуйтесь скриптом ShowUPDFolderDetails.ps1, который выводит имена UPD файлов и их владельцев:

$UPDShare = "\srv01RDSProfiles"
$UserProfiles = @()
$fc = new-object -com scripting.filesystemobject
$folder = $fc.getfolder($UPDShare)
"Username,SiD" >> export.csv
foreach ($i in $folder.files)
{
$sid = $i.Name
$sid = $sid.Substring(5,$sid.Length-10)
if ($sid -ne "template")
{
$securityidentifier = new-object security.principal.securityidentifier $sid
$user = ( $securityidentifier.translate( [security.principal.ntaccount] ) )
$UserProfile = New-Object PSObject -Property @{
UserName = $user
UPDFile=$i.Name
}

$UserProfiles += $UserProfile
}
}
$UserProfiles| select UserName, UPDFile

PowerShell скрипт - получить имена владельцев UVHD дисков в каталоге с UPD

Т.к. UPD профиль представляет собой обычный файл виртуального диска в формате VHDX, вы можете смонтировать его и просмотреть содержимое. Щелкните правой кнопкой по файлу и выберите Mount.

смонтировать UPD виртуальный диск пользователя

Как вы видите, содержимое VHDX диска представляет набор каталогов и файлов обычного профиля пользователя.

Содержимое диска с профилем

UPD профиль может монтируется в монопольном режиме. Это значит, что, если профиль пользователя сейчас подключен в RDS сессии пользователя или смонтирован вручную, вы не сможете открыть его с ошибкой: The file couldn’t be mounted because it’s in use.

На сервере RD Session Host профиль пользователя в файле VHDX монтируется в каталог C:users<username> и выглядит таким образом:

пользователь вошел в windows с UPD профилем

Обратите внимание, что UPD диск привязан к версии Windows Server на RDS хосте. Вы не сможете перенести UPD профиль пользователя с RDS сервера с одной версии Windows Server на другую.

Запись данных в файл vhdx ведется в реальном времени. Т.е. при копировании данных в профиль пользователя на сервере RDS, размер vhdx файла на общем хранилище увеличивается сразу.

Если в Windows уже есть каталог с профилем пользователя, каталог со старым профилем переименовывается в формат <username>-BACKUP-<number>.

VHDX диск монтируется при старте сессии пользователя на VDI или RDS сервере. Каждый UPD профиль монтируется в каталог C:Users. Список смонтированных VHDX дисков с профилями отображается в консоли Disk Management.

В какую папку смонтирован профиль пользователя UPD

Как расширить/сжать диск User Profile Disk с помощью PowerShell?

Вы можете расширить виртуальный vhdx диск с UPD профилем конкретного пользователя с помощью PowerShell командлета Resize-VirtualDisk из модуля Hyper-V (на компьютере должны быть установлены компоненты управления Hyper-V: Enable-WindowsOptionalFeature -Online –FeatureName Microsoft-Hyper-V-Management-Clients )

Net use U: \srv01RDSProfiles
Resize-VHD -Path u:UVHD-<SID>.vhdx -SizeBytes 30GB
Net use U: /delete

Теперь нужно расширить раздел из графического интерфейса консоли Управления дисками (Disk Manager). Действие –> Подключить виртуальный жесткий диск -> Расширить том.

расширить диск User Profile Disk

Либо воспользуйтесь таким PowesShell скриптом:
<#
.Synopsis
This script extend size of VHDX file and resize the disk partition to Max
#>
Param(
[Parameter(Mandatory=$true,ValueFromPipeline=$true)]
[alias("Path")]
[string]$vhdxFile,
[Parameter(Mandatory=$true,ValueFromPipeline=$true)]
[alias("Size")]
[int64]$vhdxNewSize
)
begin{
try {
Mount-VHD -Path $vhdxFile -ErrorAction Stop
}
catch {
Write-Error "File $vhdxFile is busy"
Break
}
$vhdx = Get-VHD -Path $vhdxFile
if ($vhdx.Size -ge $vhdxNewSize){
Write-Warning "File $vhdxFile already have this size!"
$vhdx | Dismount-VHD
Break
}
}
process{
Dismount-VHD -Path $vhdxFile
Resize-VHD -Path $vhdxFile -SizeBytes $vhdxNewSize
$vhdxxpart = Mount-VHD -Path $vhdxFile -NoDriveLetter -Passthru | Get-Disk | Get-Partition
$partsize = $vhdxxpart | Get-PartitionSupportedSize
$vhdxxpart | Resize-Partition -Size $partsize.SizeMax
}
end{
Dismount-VHD -Path $vhdxFile
}

Обратите внимание, что нельзя расширить UPD диск пользователя с активной RDS сессией.

Чтобы уменьшить размер файла UPD (при условии, что вы удалили данные пользователя внутри vhdx файла и размер файлов на диске меньше выделенного ему размера) можно воспользоваться командами:

resize-VHD \srv01RDSProfilesUVHD-<SID>.vhdx –ToMinimumSize

А затем:

Optimize-vhd -path \srv01RDSProfilesUVHD-<SID>.vhdx -mode full

Временный профиль при использовании User Profile Disk в RDS

Одной из частых проблем, с которых вы можете столкнуться при использовании RDS – периодическое появление временных профилей пользователей.

We can’t sign in to your account.
You’ve have been signed in with a temporary profile.
You can’t access your files, and files created in this profile will be deleted when you sign out. To fix this, sigh out and try signing later.

Вы вошли в Windows Server с временным профилем

При этом для пользователя создается временный профиль:

Event ID 1511
Source: User Profile Service
Windows cannot find the local profile and is logging you on with a temporary profile. Changes you make to this profile will be lost when you log off.

Чаще всего это связано с тем, что в предыдущей сессии VHDX файл пользователя не был освобожден. Вы можете найти RDSH хост, на котором сейчас подключен VHDX диск пользователя. Вы можете использовать такой PowerShell скрипт (запускается на сервере с ролью RD Connection Broker)

$UserToFind = "a.novak"
$User = $env:USERDOMAIN + '' + $UserToFind
$RDCollection = Get-RDSessionCollection | where {$_.ResourceType -eq 'Remote Desktop'}
$RDHosts = Get-RDSessionHost -CollectionName $RDCollection.CollectionName | select SessionHost
$Array = Invoke-Command -ComputerName $RDHosts.SessionHost -ScriptBlock { Get-Disk | select Location,DiskNumber | where {$_.Location -notmatch "Integrated"} }
foreach ($VHD in $Array){
$DiskID = (Get-Item $VHD.Location).Name.Substring(5).Split(".")[0]
$objSID = New-Object System.Security.Principal.SecurityIdentifier ($DiskID)
$objUser = $objSID.Translate( [System.Security.Principal.NTAccount])
if ($objUser.Value -eq $User){
$result = "$($objUser.Value) disk number $($VHD.DiskNumber) on $($VHD.PSComputername)"
}else{
$result = "$($User) - no active RSH sessions were found."
}
}
$result

PowerShell: найти RDSH хост, где подключен UPD профиль пользователя

Можно удаленно отмонтировать UPD диск командой:

Invoke-Command -ComputerName $VHD.PSComputername -ScriptBlock { Dismount-VHD -DiskNumber $VHD.DiskNumber }

Чтобы уменьшить количество проблем с временными профилями на RDS, рекомендуем настроить таймауты для RDS сессий пользователей (установите отключение через 2-4 часа для неактивных сессий). Также вы можете включить параметр GPO, который запрещает создание временных профилей: Computer Configuration -> Administrative Templates -> System -> User profiles, включите параметр Do not log users on with temporary profiles.

GPO: не создавать временные профили для пользователей

После освобождении VHDX диска администратору нужно вручную удалить временный профиль пользователя:

  1. Удалите ветки с SID пользователя в разделе реестра
    HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList
    . В этом примере есть две ветки, одна из которых с суффиксом .bak); очистка временных профилей в реестре Windows NTCurrentVersionProfileList
  2. Удалите TEMP папку пользователя из каталога
    C:Users
    .

    Подробнее об удалении профилей пользователей в Windows в статье по ссылке.

В этой статье мы рассмотрели, как настроить профили User Profile Disks в RDS на Windows Server. Настройка UPD намного проще чем процесс настройки перемещаемых профилей и перенаправляемых папок. Диски привязаны к коллекции RDS и не могут повредиться при попытке совместного использования профиля несколькими терминальными серверами (в отличии от обычных профилей). Диски профилей пользователей могут храниться на SMB шарах, CSV, SOFS, в SAN или на локальных дисках.

Задача: Перенести профили и папки сотрудников с одного сервера на другой

У меня на работе что-то стал тупить сервер (физический S5000VSA, 2 sockets Intel Xeon CPU E6405 2.00Ghz, 4Gb RAM) на котором располагаются профили и перемещаемые папки пользователей. Вот просто так система подвисала и ничего с ней делать нельзя было, но проходило какое-то время и как ни в чем не бывало. Но вот у пользователей в связи с использованием перемещаемых профилей и папок "Мои документы", "Рабочий стол", "Application Data" происходило повисание программ, с которыми они работают, отваливается рабочий стол и ничего сделать нельзя, проходит какое-то время и все возвращается к работе как ни в чем не бывало. Перво-наперво был проверено состояние RAID контроллера через утилиту MegaRAID Storage Manager. RAID массив в оптимальном состоянии, ошибок нет. Удалены оставшиеся от предыдущего системного администратора зачем-то развернутые роли, не относящиеся к работе. Такое ощущение, что он учился на боевом окружении. Нагрузки по памяти, по сети нет. Предварительно с него были вынесены LUN где располагались "Почтовые архивы пользователей", LUN с дистрибутивами, LUN где располагался "Консультант+". Но все это ни к чему не привело, по данным анализа за сетевыми интерфейсами через Zabbix, мы сетевую пропускную способность линка 1Gbps даже и близко не использовали.

Поэтому я принял решение, что нужно на новом сервере развернуть VM и перенести на него: Профили

Шаг №1: Разворачиваю виртуальную машину на ESXi 6.7.0 и именую ее как srv-shares02 (текущий srv-shares01), ось использую Windows Server 2012 R2 Std.

Шаг №2: Создаю каталог на srv-shares02 где будут размещаться профили с соответствующими правами доступа:

Ниже какие права делаю я:

C:Windowssystem32>net share Profiles=D:Profiles /GRANT:«Authenticated Users»,FULL

C:Windowssystem32>icacls D:Profiles /inheritance:d

C:Windowssystem32>icacls D:Profiles /remove «Users» /T

C:Windowssystem32>icacls D:Profiles /grant «CREATOR OWNER»:(OI)(CI)(IO)(F)

C:Windowssystem32>icacls D:Profiles /grant «NT AUTHORITYAuthenticated Users»:(OI)(CI)(RX)

C:Windowssystem32>icacls D:Profiles /grant «NT AUTHORITYSYSTEM»:(OI)(CI)(F)

C:Windowssystem32>icacls D:Profiles /grant «POLYGONekzorchik»:(OI)(CI)(F)

C:Windowssystem32>icacls D:Profiles /grant «BUILTINAdministrators»:(OI)(CI)(F)

Шаг №3: Я использую DFS как доступ к сетевым ресурсам, у меня есть дефолтные пути, в которые я добавляю:

\polygon.localUsers

  • Archives – почтовые архивы, где путь до сервера \srv-cons.polygon.localArchives
  • Documents – общий диск, \srv-shares01.polygon.localDocuments
  • Forwarded folders – перемещаемые папки, \srv-shares01.polygon.localForwarded folders
  • Profiles – профили, \srv-shares01.polygon.localProfiles

Создаю каталог

  • Profiles2 - \srv-shares02.polygon.localProfiles

Шаг №4: У каждой доменной учетной записи (к примеру, alektest4) в свойствах прописан на вкладке Profile

(User profile)

Profile path: \polygon.localUsersProfilesalektest4

Шаг №5: Перехожу к процедуре переноса профилей в домене для пользователей, которые отделены у меня контейнером Office Users. Действия ниже проделываем вручную с srv-shares01

На компьютере пользователя выполняем Logoff или лучше выключаем компьютер

В свойствах учетной записи в домене во вкладке Profile меняем путь:

  • Profile path: на \polygon.localusersProfiles2alektest4

Затем на srv-shares01 запускаю консоль командной строки с правами администратора и переношу профиль пользователя с srv-shares01

C:Windowssystem32>robocopy D:SharesUsersProfilesalektest4.V6 «\polygon.localusersProfiles2alektest4.V6» /J /E /COPYALL /Z /R:3

На заметку: имя alektest4.V6 – это профиль на Windows 10 Pro, если имя alektest4.V2 – это профиль Windows 8.

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

Шаг №6: Теперь проработаю шаги по перемещению папок пользователя (все пользователя в OU=Office Users), это:

  • AppData(Roaming): \polygon.localusersForwarded folders%USERNAME%Application Data
  • Desktop: \polygon.localusersForwarded folders%USERNAME%Desktop
  • Documents: \polygon.localusersForwarded folders%USERNAME%My Documents

У меня есть GPO которая была: GPO_Office_Users_Policy

User Configuration – Policies – Windows Settings – Folder Redirection – и через правый клик на AppData (Roaming) открываю свойства

  • Setting: Basic – Redirect everyone’s folder to the same location
  • Target folder location: Redirect to the following location
  • Root Path: \polygon.localusersForwarded folders%USERNAME%Application Data

И для других папок по аналогии.

Также в этой политике предопределены доверенные сайты

User Configuration – Policies – Administrative Templates – Windows Components – Internet Explorer – Internet Control Panel – Security Page –

  • Site to Zone Assignment List: Enabled
    • Value name: *.gs.service.nalog.ru
    • Value: 2

И многие сайты *.sberbank.ru,*.service.nalog.ru

    • Value name: \polygon.local
    • Value: 1

В этой политики ограничение распространения стоит: OU=Office Users, а Scope: Authenticated Users

Через вкладку Delegation – Advanced добавляю созданную под это дело (перемещение) группу: GRP_GPO_Office_Users_Policy_Deny где права выставляю, как Deny (Apply group policy)

Шаг №7: Создаю дубль такой политики выше, именую ее как: GPO_Office_Users_Forward

В этой политики ограничение распространения стоит: OU=Office Users, а Scope: указываю группу GRP_GPO_Office_Users_Forward

Шаг №8: Создаю каталог на srv-shares02 где будут располагаться перемещаемые папки пользователя:

C:Windowssystem32>net share users=«D:Forwarded folders» /GRANT:«Authenticated Users»,FULL

C:Windowssystem32>icacls «D:Forwarded folders» /inheritance:d

C:Windowssystem32>icacls «D:Forwarded folders» /remove «Users» /T

C:Windowssystem32>icacls «D:Forwarded folders» /grant «CREATOR OWNER»:(OI)(CI)(IO)(F)

C:Windowssystem32>icacls «D:Forwarded folders» /grant «NT AUTHORITYAuthenticated Users»:(OI)(CI)(RX)

C:Windowssystem32>icacls «D:Forwarded folders» /grant «NT AUTHORITYSYSTEM»:(OI)(CI)(F)

C:Windowssystem32>icacls «D:Forwarded folders» /grant «POLYGONekzorchik»:(OI)(CI)(F)

C:Windowssystem32>icacls «D:Forwarded folders» /grant «BUILTINAdministrators»:(OI)(CI)(F)

Шаг №9: Создаю новый путь в DFS:

\polygon.localUsersForwarded folder 2 - \srv-shares02users

Шаг №10: Итого текущая последовательность действия по перемещению папок пользователя:

1) Выходим на компьютере где пользователь или выключаем его компьютер

2) Учетную запись пользователя папки которого перемещаем включаем в группы:

  • GRP_GPO_Office_Users_Forward
  • GRP_GPO_Office_Users_Policy_Deny

3) на srv-shares01 запускаем консоль командной строки

robocopy «\srv-shares01Forwarded foldersalektest4» «\srv-shares02usersalektest4» /J /E /COPYALL /Z /R:3

4) Авторизуемся на компьютере

Проверяем работу всех программ или ждем покуда пользователь начнет жаловаться, обычно это в какие-либо программах нужно поменять путь.

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

Итого я практически разобрал, как успешно мигрировать профили пользователей и перемещаемые папки на другой сервер. Теперь после рабочего дня или в выходные данная миграция будет выполнена, а мне как бонус более стабильная работа и оплата переработок.

На этом у меня все, с уважением автор блога Олло Александр

Email: support@ekzorchik.ru

Telegram: @aka_ekzorchik


Понравилась статья? Поделить с друзьями:
  • Перенос windows 7 на ssd paragon migrate os to ssd
  • Перенести профили пользователей на другой диск windows server 2019
  • Перенос windows 7 на amd на intel
  • Перенести приложение на второй экран windows 10
  • Перенос windows 2008 server r2 на другой сервер 2008 r2