User Profile Disks в RDS Windows Server 2012/2016

User Profile Disks (UPD, диски профілів користувачів) - новий функціонал Remote Desktop Services в Windows Server 2012. User Profile Disks представляють собою альтернативу використанню технологій переміщуваних профілів (Roaming profile) і перенаправлення папок (Folder redirection) в термінальних сценаріях RDS. Ідея UPD - дані користувача і його додатків (тобто його профіль) зберігаються у вигляді окремого віртуального vhdx диска на якомусь виділеному загальному файловому ресурсі. Цей віртуальний диск монтується в сесію користувача при його вході на RDS-сервер, і відключається при виході (звичайно, зі збереженням всіх змін в профілі).

У цій статті ми опишемо особливості настройки і роботи технології User Profile Disks на сервері з роллю Remote Desktop Services на Windows Server 2012/2012 R2 / 2016.

зміст:

  • Налаштування User Profile Disks в Windows Server RDS
  • VHDX файл з UPD профілем користувача
  • Як розширити диск User Profile Disk за допомогою PowerShell

Налаштування User Profile Disks в Windows Server RDS

В першу чергу необхідно на будь-якому файловому сервері організації створити загальну мережеву папку, в якій будуть зберігатися файли з профілями користувачів в форматі VHDX дисків (якщо ви хочете забезпечити високу доступність UPD дисків, можна розмістити файли UPD на кластерному файловому ресурсі). У нашому прикладі, шлях до такого каталогу буде виглядати так: \\srv01 \DemoLabOficeApps. Необхідно надати серверів, що входять в колекцію RDS повні права доступу на даний каталог і файлову систему.

Порада. В рамках однієї колекції RDS для кожного користувача може існувати тільки один vhdx файл з UPD профілем. Якщо користувач підключається до ресурсів з двох різних RDS колекцій, для кожної з них буде створений окремий vhdx файл з профілем користувача.

Режим User Profile Disks включається і налаштовується в параметрах колекцій Remote Desktop. Цей режим можна включити безпосередньо при створенні колекції, або вже після того, як колекція створена.

У нашому прикладі колекція вже існує, тому в консолі Server Manager вибираємо наявну колекцію, і в верхньому лівому кутку вибираємо Tasks-> Edit Properties.

Потім в розділі User Profile Disks ставимо чекбокс на Enable user profile disks, вказуємо шлях до створеної раніше мережевий папці (\\ srv01 \ DemoLabOficeApps) і максимальний розмір диска з профілем (нехай це буде 20 Гб). зберігаємо зміни.

Після збереження змін, перевірте що NTFS дозволу на каталог з дисками профілів були змінені. У нашому випадку колекція складається з одного сервера RDSH01, якому надані повні права на папку.

На рівні мережевий папки (кулі) сервера RDSH01 $ надані права Full Control. При додаванні нових серверів RD Session Host в колекцію RDS серверів, майстер автоматично змінить дозволу на каталог, надавши доступ новим серверів. Це дуже зручно, тому що при масштабуванні термінальної ферми не потрібно кожен раз згадувати про налаштування дозволів на мережеву папку з профілями.

VHDX файл з UPD профілем користувача

Перейдемо в наш загальний мережевий каталог з профілями користувачів. Тепер в ньому зберігається файл виду UVHD-template.vhdx.

Цей файл являє собою шаблон диска з профілем користувача. При першому RDP вході користувача на сервер RDS, цей шаблон копіюється і перейменовується в vhdx файл, який містить в імені SID користувача.

Порада. Тепер, щоб зіставити ім'я файлу UPD з ім'ям користувача, доводиться користуватися окремим скриптом. Наприклад, ShowUPDFolderDetails.ps1 або можна перетворити SID в ім'я облікового запису за допомогою командлета Get-ADUser:

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

Подивимося, що представляє собою диск з профілем користувача. Для цього змонтуємо його, клацнувши по vhdx файлу ПКМ і вибравши пункт Mount. Диск UPD можна використовувати тільки в одній сесії на одному RDS хості (монопольний доступ). Ви не зможете змонтувати UPD VHDX диск, якщо в даний момент його використовує користувач на RDS сервері).
Як ви бачите, вміст vhdx диска являє набір каталогів і файлів звичайного профілю користувача. При вході в систему користувач отримує абсолютно прозорий доступ до даних, що зберігаються в його профілі.

На стороні сервера RD Session Host .vhdx файл користувача монтується в каталог C: \ Users\> і виглядає таким чином:

Зверніть увагу, що UPD диск прив'язаний до версії Windows RDS сервера. Ви не зможете перенести UPD профіль користувача з RDS сервера з однією версією Windows Server на іншу.

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

У тому випадку, якщо в системі вже присутній каталог з профілем користувача, каталог зі старим профілем перейменовується в формат <username> -BACKUP->.

VHDX диск монтується при старті сесії користувача на VDI або RDS сервері. Список підключених UPD дисків з профілями можна вивести за допомогою утиліти mountvol.

За замовчуванням диск з призначеним для користувача профілем містить в собі весь вміст профілю користувача. Однак, в настройках RDS колекції можна виключити певні папки зі списку синхронізуються каталогів, або вказати, що повинні збережуться тільки певні папки. Таким чином всі зміни, які вносяться в термінальній сесії користувача в список виключених папок профілю, не зберігаються на vhdx диску в мережевому каталозі.

Другий варіант дозволяє налаштувати збереження в UPD профілі тільки зазначених каталогів.

У разі необхідності, другий варіант дозволяє реалізувати сценарії збереження налаштувань стартового екрана, що зберігаються в файлі appsfolder.itemdata-ms. В даному прикладі ми просто додали шлях до каталогу \ AppData \ Local \ Microsoft \ Windows в якості додаткового шляху, який потрібно зберігати в UPD.

Як розширити диск User Profile Disk за допомогою PowerShell

Ви можете розширити віртуальний vhdx диск з UPD профілем конкретного користувача за допомогою PowerShell командлет Resize-VirtualDisk з модуля Hyper-V.

Net use U: \\ srv01 \ DemoLabOficeApps
Resize-VHD -Path u: \ UVHD-.vhdx -SizeBytes 30GB
Net use U: / delete

Якщо ви використовуєте командлет Resize-VHD з робочою станцією під Windows 10, то в системі необхідно встановити роль Hyper-V -> ПлатформаHyper-V -> Служби Hyper-V.

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

Або скористайтеся таким PoSh скриптом:
<#
.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 \\ srv01 \ DemoLabOficeApps \ UVHD-.vhdx -ToMinimumSize

А потім:

Optimize-vhd -path \\ srv01 \ DemoLabOficeApps \ UVHD-.vhdx -mode full

Отже, ми розглянули основні особливості роботи технології User Profile Disks в RDS / VDI рішеннях на базі Windows Serer 2016 і 2012 R2. Налаштування UPD набагато простіше ніж процес налаштування переміщуваних профілів і перенаправляє папок. Диски прив'язані до колекції RDS і не можуть пошкодитися при спробі спільного використання профілю декількома термінальними серверами (на відміну від звичайних профілів). Диски профілів користувачів можуть зберігатися на SMB кулях, CSV, SOFS, в SAN або на локальних дисках. Також Microsoft відзначає, що швидкість завантаження робочого середовища користувача в разі використання UPD зменшується.

Якщо ви плануєте використовувати для зберігання UPD профілів 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.ru \ namespace \ UPD1" is not available.

Також на стороні файлового сервера бажано використовувати версію SMB 3.02 (Windows Server 2012 R2) або вище.

У будь-якому випадку, тому що технологія User Profile Disks щодо свіжа, рекомендується перед великими впровадженнями UPD відкатати їх роботу і можливі проблеми в тестовому середовищі.