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
Создайте общую сетевую папку для хранения файлов профилей UPD. Эту папку нужно разместить на любом файловом сервере за пределами фермы RDS ( рекомендуем расположить сетевую папку на кластере для обеспечения высокой доступности UPD профилей). В нашем примере, путь к такому каталогу будет выглядеть так:
\\srv01\RDSProfiles
.
Создайте в 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 на папку \\srv01\RDSProfiles для группы mskRDSHCollection1.
Вы можете включить User Profile Disks в настройках коллекций Remote Desktop при ее создании. Если коллекция уже создана, найдите ее в консоли Server Manager и в верхнем левом углу выберите Tasks-> Edit Properties.
Затем в разделе User Profile Disks включите опцию Enable user profile disks, укажите к созданной ранее сетевой папке (
\\srv01\RDSProfiles
) и задайте максимальный размер диска с профилем (пусть это будет 7 Гб). Сохраните изменения.
Unable to enable user disks on rVHDShare. Could not create template VHD. Error Message: The network location "\\winitpro.ru\namespace\UPD1" is not available.
Вы можете проверить, что UPD включен для коллекции RDS и получить путь к каталогу, в котором хранятся профиля с помощью команды:
Get-RDSessionCollectionConfiguration -CollectionName mskCorpApp1 –UserProfileDisk
По умолчанию UPD диск хранит все содержимое профиля пользователя. Вы можете исключить определенные папки из списка синхронизируемых каталогов. Если каталог исключен из профиля, изменения в нем не будут сохраняться в VHDX диске в сетевом каталоге. Доступные две опции:
- Store all user settings and data on the user profile disk
- Store only the following folders in the user profile disk
New-ItemProperty -Path “HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy” -Type DWord -Path -Name DeleteUserAppContainersOnLogoff -Value 1
VHDX файлы с UPD профилями пользователей RDS
После того, как вы изменили настройки коллекции и включили UPD, в целевом каталоге будет создан файл UVHD-template.vhdx.
Этот файл представляет собой шаблон виртуального диска с профилем пользователя. Когда новый пользователей подключается к серверу RDS по RDP, этот шаблон копируется и переименовывается в vhdx файл, содержащий в имени SID пользователя. Для каждого пользователя создается отдельный VHDX файл.
Чтобы понять, какому пользователю принадлежит VHDX файл, нужно сопоставить имя UPD файла с именем пользователя. Можно вручную преобразовать SID в имя учетной записи с помощью командлета Get-ADUser:
Get-ADUser -Identity S-1-5-21-305647651-3952524288-2944781117-23711116
Или воспользуйтесь скриптом ShowUPDFolderDetails.ps1, который выводит имена UPD файлов и их владельцев:
$UPDShare = "\\srv01\RDSProfiles"
$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
Т.к. UPD профиль представляет собой обычный файл виртуального диска в формате VHDX, вы можете смонтировать его и просмотреть содержимое. Щелкните правой кнопкой по файлу и выберите Mount.
Как вы видите, содержимое VHDX диска представляет набор каталогов и файлов обычного профиля пользователя.
UPD профиль может монтируется в монопольном режиме. Это значит, что, если профиль пользователя сейчас подключен в RDS сессии пользователя или смонтирован вручную, вы не сможете открыть его с ошибкой: The file couldn’t be mounted because it’s in use.
На сервере RD Session Host профиль пользователя в файле VHDX монтируется в каталог C:\users\<username> и выглядит таким образом:
Запись данных в файл vhdx ведется в реальном времени. Т.е. при копировании данных в профиль пользователя на сервере RDS, размер vhdx файла на общем хранилище увеличивается сразу.
Если в Windows уже есть каталог с профилем пользователя, каталог со старым профилем переименовывается в формат <username>-BACKUP-<number>.
VHDX диск монтируется при старте сессии пользователя на VDI или RDS сервере. Каждый UPD профиль монтируется в каталог C:\Users. Список смонтированных VHDX дисков с профилями отображается в консоли Disk Management.
Как расширить/сжать диск 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: \\srv01\RDSProfiles
Resize-VHD -Path u:\UVHD-<SID>.vhdx -SizeBytes 30GB
Net use U: /delete
Теперь нужно расширить раздел из графического интерфейса консоли Управления дисками (Disk Manager). Действие –> Подключить виртуальный жесткий диск -> Расширить том.
Либо воспользуйтесь таким 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 \\srv01\RDSProfiles\UVHD-<SID>.vhdx –ToMinimumSize
А затем:
Optimize-vhd -path \\srv01\RDSProfiles\UVHD-<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.
При этом для пользователя создается временный профиль:
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
Можно удаленно отмонтировать 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.
После освобождении VHDX диска администратору нужно вручную удалить временный профиль пользователя:
- Удалите ветки с SID пользователя в разделе реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
. В этом примере есть две ветки, одна из которых с суффиксом .bak); - Удалите TEMP папку пользователя из каталога
C:\Users
.Подробнее об удалении профилей пользователей в Windows в статье по ссылке.
В этой статье мы рассмотрели, как настроить профили User Profile Disks в RDS на Windows Server. Настройка UPD намного проще чем процесс настройки перемещаемых профилей и перенаправляемых папок. Диски привязаны к коллекции RDS и не могут повредиться при попытке совместного использования профиля несколькими терминальными серверами (в отличии от обычных профилей). Диски профилей пользователей могут храниться на SMB шарах, CSV, SOFS, в SAN или на локальных дисках.
Недавно начали использовать данную технологию.
Изначально профили находились на файловом сервере с WS2008R2 и часто наблюдалась проблема с тем что пользователь заходил под временным профилем.
Переведя файл-сервер на WS2012R2, добавив папку с дисками профилей в исключения антивирусу проблема исчезла, почти за редкими исключениями…
Осталась еще одна «непонятка» пользователи не могут удалить данные со своего рабочего стола, требуются админские права, или удалять минуя корзины с зажатым Shift.
Может кто сталкивался?
Еще возникают проблемы с пропаданием раскладок языков и добавлением новых раслкадок…
Перенаправленные папки по сути дают тоже самое, только проблем с ними сильно меньше. Полгода назад интересовался этим, читал много отзывов, не жалею что выбор пал на перенаправляемые папки.
Может быть у Вас осталась какая-нибудь сравнительная статья по сравнению папок перенаправления с созданием виртуальных дисков?
Легко решается игнорированием сервером раскладки на стороне клиента.на терминальном сервере внести изменения в реестр
в ветке HKLM\System\CurrentControlSet\Control\Keyboard Layout
создать параметр IgnoreRemoteKeyboardLayout типа REG_DWORD(32bit) и установить значение 1
+1 к проблеме с удалением файлов с рабочего стола.
Как пофиксить???
Один из клиентов тоже сталкивался с такой проблемой: соль была в том, что в шаблоне профиля в VMDK файле стояли кривые разрешения на корзину. При этом мимо корзин файлы удалялись корректно (SHIFT+DEL).
Решилось удалением каталога корзины в шаблоне и у текущих пользователей, при входе пользователя в систему, каталог корзины пересоздается с корректными разрешениями.
Не пойму — о каком шаблоне идет речь?
Я говорил о UVHD-template.vhdx
Примаунтил себе темплейт — он пустой 🙁
ЧЯДНТ ??
Я так понимаю в поле User Profile Disks не поддерживается путь к DFS шаре. Пишет доступ запрещен.
Так?
У меня то-же самое… Похоже UPD на DFS шарах просто не поддерживаются.
вполне себе работает с DFS
Добрый день.
Есть необходимость подключать vhdx диск пользователя как сетевой диск ,это возможно реализовать ?
В том случае если пользователь не использует RDS мог получить доступ к своим файлам.
Добрый день!
А почему его нужно подключать именно как сетевой диск? Достаточно просто смонтировать vhdx файл как локальный диск. Правда, насколько я понимаю, прав обычного пользователя для этого недостаточно.
Так-что монтирование vhdx дисков придется реализовать через задания планировщика или стартап-скрипты.
Столкнулся с еще одной мега проблемой у это технологии.
Выделили пользователям по 2Гб.
Но этого оказалось мало, расширили до 3Гб, опять мало…
Начали смотреть чем занято, проверили все папки занято 300Мб, чем занято 2,7Гб ума не приложу, может есть идеи?
проверка, дефрагментация не помогла…
Я думаю темп … в папке C:\\AppData\Local\Temp … Я вот тоже задумался сколько выдавать и интересно как будет регулироваться объем темпа? Кстати я сделал свои тоже 2 ГБ диски но у меня все в норме … но пользователи тестовые я на них ни чего особо не делаю.
Проверьте квоты.
И может место закончилось на физическом диске где все виртуальные диски лежат?
Если бы в папке C:\\AppData\Local\Temp то я бы увидел что папка AppData занимает все место.
По началу 2Гб с головой хватало.
«Проверьте квоты.» — какие именно?
Места на диске где vhdx лежит предостаточно…
Загадка пока не разгадана…(((
WinDirStat вам в помощь.
Коллеги, у кого тестовая ферма есть
могли бы попробовать увеличить диски в свойствах коллекции, увеличятся ли диски которые уже были созданы? Не распадется ли коллекция? Не создадутся ли новые UPD у пользователей?
1. Диски, которые были созданы не увеличиваются
2. Колекция в норме после изменнения размера шаблона. Кстати меняется только размер шаблона.
3. У пользователей остались ситарые диски и старые размеры. У новых уже новые.
P. S. «Совет. В случае необходимости виртуальный диск пользователя персонально можно расширить с помощью командлета Resize-VirtualDisk или из GUI Disk Manager (нельзя расширить диск пользователя с активной сессией).»
На сервере терминалов создана коллекция. Как можно создать еще одну коллекцию для того чтобы указать новое расположение (виртуальных дисков) профилей пользователей. Так сделать хотел бы чтобы при создании новых пользователей их профили хранились на новом свободном разделе.
Понадобилось удалить «профиль/диск» для одного юзера. Нужно просто удалить его vhdx-лиск ???
или есть более «православные» методы ?
По моему это лучший вариант из всего что могли придумать MS. Попробуйти просто взять и удалить профиль пользователя из Win7 и зайти снова под этим пользователем … Будет создан TEMP … если мне память не изменяет 🙂
А тут удалил и готово, хочешь командой, хочешь ручками 🙂
Коллеги, для новой фермы нужно развернуть отказоустойчивый файловый кластер сугубо под UPD — что выбрать? SOFS подходит для таких целей?
Вполне себе походит. В отличии от классических перемещаемых профилей, UPD оптимизированы для работы в Scale-Out File Server. Вот линк с комментариями от представителя MSFT: _https://blogs.technet.microsoft.com/filecab/2013/12/05/to-scale-out-or-not-to-scale-out-that-is-the-question/
UPD is totally supported and the TechNet support statement was supposed to be updated ages ago. I am following up.
Напомните как увеличить размер UPD только для 1го юзера??
Добавить место так:
Resize-VHD –Path UVHD-sidxxxx.vhdx –SizeBytes 1TB
Затем смонтировать vhdx диск с профилем пользователя в консоли управления дисками diskmgmt.msc и сделать Extend Volume
Пробую расширить диск. На самом сервере где хранятся UVHD делаю копию диска юзера и запускаю команду
PS C:\Windows\system32> Resize-VHD –Path D:\OLD-3188.vhdx –SizeBytes 11GB
и получаю ошибку
Resize-VHD : The Hyper-V Management Tools could not access an expected WMI class on computer ‘RDUPD-01’. This may i
ndicate that the Hyper-V Platform is not installed on the computer or that the version of the Hyper-V Platform is incom
patible with these management tools.
At line:1 char:1
+ Resize-VHD –Path D:\OLD-3188.vhdx –SizeBytes 11GB
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Resize-VHD], VirtualizationException
+ FullyQualifiedErrorId : Unspecified,Microsoft.Vhd.PowerShell.Cmdlets.ResizeVhd
сервер у меня в виде ВМ под вмварей на Вин2016.
Фича Hyper-V Management Tools установлена. ЧЯДНТ ??
Для того, чтобы этот командлет отрабатывал без ошибок на рабочей станции с Windows 10, помимо Средств управления Hyper-V мне пришлось доустановить в систему Службы Hyper-V через оснастку Программы и компоненты (appwiz.cpl)
(c) https://blog.it-kb.ru/2015/08/26/expanding-rd-user-profile-disk-upd-extend-vhdx-using-powershell/
Подскажите, а как уменьшить диск юзера? Изначально создали коллекцию, где указано 20гиг на профиль, один из профилей разросся до 17гиг, после очистки ненужный файлов в профиле пользователя, файл диска профиля не уменьшился, так и остался 17гиг, хотя реальный его объём 3гига. Как можно его урезать в таком случае?
Вопрос сжатия размеров vhdx дисков разбирался в статье: Динамическое изменение размеров виртуальных дисков в Windows Server 2012 R2
Юзеры требуют в онлайне видеть сколько свободного места осталось в их профиле — как организовать сабж ??
Пока видится решение в виде некого файла / странички, которую генерирует по планировщику posh скрипт, который бы брал все файлы из каталога с UPD и при помощи командлета Get-VHD получал размер файлов. А пользователи пусть смотрят на данный файл.
Еще теоретически, можно прикрутить скрипт и для сессии каждого пользователя, когда скрипт получал бы данные для файла UVHD-{USERSID}.vhdx и отображал бы их пользователю, но тут нужно подумать как корректно раздать права на каталог с файлами UPD
А как корректно смигрировать с локальных профилей на сетевые диски?
А то я что-то игрался с этими профилями и заметил, что если на хосте были локальные папки пользователей, а потом перенастроить коллекцию на использование дисков, то инфа не переносится и в папке BACKUP её нет через раз.
Не понял речь про UPD или перемещаемые профили? Насколько я помню, автоматизировано перенести данные из локального профился в UPD нельзя — только ручной перенос данных
Добрый день. Спасибо за подробный разбор, решил потестировать у себя.
Сразу вопрос — как сделать чтобы профили некоторых пользователей, например администраторов сервера хранились локально и не пытались упрятаться в vhdx?
Второй вопрос — известно ли как работает функция «Использовать временные папки для сеанса»? Почитал описание — пишут что если включена или выключена — все едино временные файлы хранятся в профиле пользователя. В чем разница тогда?
1) Простого способа исключить сохранение профилей некоторых пользователей из UPD нет. Как вариант, подключаться на консоль сервера — mstsc /admin
В этом случае используетя локальный профиль.
2) Опыта использования политики Do not use temporary folders per session нет, понять работает она или нет можно только экспериментом. Будет ли при включенной политике использоваться общая папка Temp или нет.
Спасибо за статью.
В статье есть такое предложение «Также Microsoft отмечает, что скорость загрузки рабочей среды пользователя в случае использования UPD уменьшается.»
Здесь ошибка или нет? При использовании UPD скорость загрузки рабочей среды пользователя уменьшается или увеличивается?
ИМХО: скорость загрузки рабочей среды пользователя уменьшается т.е. время той самой загрузки увеличивается
Значит при использовании UPD есть негативный результат — профили пользователей начнутся загружаться дольше.
Нет идеальных технологий.
При большом кол-ве юзеров/хостов с этим можно мириться!
описка скорее всего. скорость загрузки увеличивается или другими словами время загрузки уменьшается )
UPD профили грузятся немного быстрее. Ведь нужна всего одна сесиия копирования файла UPD по сети, не нужно копировавть множество мелких файлов.
На новой РДС-ферме в некоторорых юзеров (рандомные юзеры) появляется проблема с удалением в корзину.
Для таких юзеров я захожу в папку $RECYCLE.BIN и удаляю корзину юзера (ищу по СИДу)
Но хотелось бы глянуть что с корзиной в UVHD-template.
я примаунчиваю его он он абсолютно пустой.
ЧЯДНТ ?
Столкнулся с проблемой…Не работае кнопка Пуск, поиск.
Все стандартніе решения проблемы не помогли, подозреваю что дело именно в использовании User Profile Disks.
Есть такая фигня…
Нагуглили что все из-за фаерволла…
Remove-Item «HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System»
New-Item «HKLM:\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\RestrictedServices\Configurable\System»
+ ребут RDHS
Помогает, но ненадолго…
Вот здесь подронее проблема описана. Действительно при использовании UPD на RDS, в файерволе со временем накапливаются тысчи правил. От этого все начинает тормозить:
https://winitpro.ru/index.php/2018/05/18/medlenno-rabotayut-remoteapp-problemy-menyu-windows-10/
Пардоньте, прошлый комментарий не туда написал(
Может кто-нибудь подскажет, как с помощью PS вывести на экран туже информацию, что выводит diskpart -> list vdisk?
Пример:
C:\Windows\system32>diskpart
Microsoft DiskPart, версия 10.0.14393.0
(С) Корпорация Майкрософт (Microsoft Corporation), 1999-2013.
На компьютере: TSMSK11
DISKPART> list vdisk
Вирт. диск ### Диск ### Состояние Тип Файл
————— ——— ——————— ——— ——
Вирт. диск 0 Диск 28 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 1 Диск 29 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 2 Диск 12 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 3 Диск 6 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 4 Диск 41 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 5 Диск 21 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 6 Диск 17 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 7 Диск 31 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 8 Диск 3 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 9 Диск 16 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 10 Диск 34 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 11 Диск 44 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
Вирт. диск 12 Диск 30 сек. Присоединено, но не сек. Расширяемы сек. \\uprofile\TSProfiles\UVHD-SID.vhdx
А тут нет инфы?
https://winitpro.ru/index.php/2019/01/10/powershell-upravlenie-diskami-i-razdelami/
Может я не туда смотрю(, но я не нашел как сделать, чтобы выводился №вирт.диска и соответственно путь к нему.
Поясню, это диски на одном из серверов фермы RDS, использующем «Диски профилей пользователей»(UPD), выше список примонтированных UPD на сетевой шаре.
UPD монтируется под определенным номером виртуального диска для каждого вошедшего пользователя, что можно также посмотреть в оснастке «Управления дисками».
Иногда возникает ситуация, когда необходимо отмонтировать диск определенного пользователя, при условии, что сессии пользователя на ферме RDS нет и соответственно нет возможности узнать на каком именно сервере подключен его UPD. Приходится перебирать вручную все подключенные UPD на каждом сервере.
Понимаю вашу боль т.к. иногда сами такое ловим с дисками.
Мы юзаем https://gallery.technet.microsoft.com/Sidder-Quickly-see-which-fa6360b3 для того что б смотреть все диски.
Если найдете причину не_отмаунчивания дисков — обязательно поделитесь 😉
Спасибо за инфо, про Sidder знаю, сам пользую, но он не дает той информации, которая мне нужна 🙁
У нас как правило «не_отмаунчивание» происходит после сильной загрузки серверов, сами ищем решение, т.ч. взаимно, если найдете, пишите 🙂
Кстати, могу еще порекомдовать Galinette cendrée для управления серверами фермы 😉
@Алексей
в одном ТГ-чате народ пишет что после перехода на ССДшки (без изменения структуры РДС-фермы) все проблемы с ЮПД ушли сами по себе 🙂
Подскажите в варианте использования нескольких терминальных серверов (HA) с брокером (-ми) возможно использование одного UPD для пользователя??
да — можно.
на каждую коллекцию свой UPD для пользователя
День добрый!
При попытке использования командлетов Resize-vhd и Optimize-vhd получаю:
The Hyper-V Management Tools could not access an expected WMI class on computer ‘tratata’. This may indicate that the Hyper-V Platform is not installed on the computer or that the version of the Hyper-V Platform is incompatible with these management tools.
Я так понимаю, что нужна непосредственно сама роль Hyper-V ?
Фича Hy\per-V Module for Windows PowerShell — установлена.
Server 2016.
1. Попробуйте запустить PS консоль от админа
2. Если не заработало, то выполните в этой консоли:
MOFCOMP %SYSTEMROOT%\System32\WindowsVirtualization.V2.mof
3. Если и после этого не заработало, ребутните сервер.
Спасибо, но это все бесполезно, пока не установлена роль (служба) Hyper-V.
Файлы .mof создаются после добавлении роли Hyper-V (проверил на W10).
Сразу после добавления роли Hyper-V, корректно отрабатывают и командлеты.
На 2016 еще не пробовал, но уверен, там все так же.
Добрый день. Подскажите пожалуйста, возможно глупый вопрос будет. Терминальный сервер на SSD дисках, файловый сервер с дисками профилей — на обычных дисках. Что влияет на производительность сеанса пользователя больше, диски на терминальном сервере или диски файлового сервера? Имеет ли смысл на файлом сервере менять диски на SSD?
у вас UPD или перемещаеммые профили?
ИМХО важнее всего то где лежит профиль юзера.
Но можно просто взять и все «замерять» тем же ресурс монитором!
Тут еще е играет пропускная способностиь сети до сервера.
Для 1 Гб Ethernet макс скорость 125 Мб/с, в том время как скорость доступа к среднему SSD около 500 Мб/с. Т.е. ваша cеть просто не успеет прокачать все возможности SSD.
На RDS терминале SSD диск имхо будет лучше.
У меня UPD, понял попробую монитор ресурсов посмотреть. Никогда не пользовался правда им
Пробую внедрить UPD. Стандартный TEMP (TMP) (%USERPROFILE%\AppData\Local\Temp) вызывает ошибки установки Расширений в Edge. Пробовал %USERPROFILE%\Temp та же ошибка. Установка TEMP (TMP) в «c:\TEMP\%USERNAME%» исправляет положение, но это крайне несекьюрно!!! Как сделать правильно?
Скорее всего Вам поможет вот эта статья
https://www.brankovucinec.com/users-cant-install-google-chrome-extensions-on-rds-farm/
В статье изложена автоматизация процесса назначения TEMP (TMP). Но делать так крайне не рекомендую…
Вопрос остаётся открытым.
Пробую внедрить UPD. UVHD-template.vhdx пустой. Что в этом диске должно быть?
По большому счету ничего не должно лежать.
Это заготовка для будущих виртуальных дисков, которая только размер диска профиля задает.
Но, чисто теоретически, туда, наверное, возможно впихнуть какую-то заранее подготовленную инфу, но мне кажется есть более гибкие инструменты.
Добрый день!
Сразу попробовал, потом статью прочитал 🙂
Может быть уже есть решение, как сделать чтобы профили некоторых пользователей, например администраторов сервера хранились локально и не пытались упрятаться в vhdx?
Что-то мне не камильфо, когда профиль администратора далеко от Windows 🙂
Или не парится по этому поводу, посоветуйте
Можно для админов создать отдельную коллекцию и не настраивать для нее UPD. А можно не парится — чем потенциално грозит то, что WIndows не сможет загрузить профиль админа? чтотам важного хранится? в любом случае создатся временный профиль, его вам хватит для работы и исправления проблем.
Пробую внедрить UPD (данные перемещаемого профиля, данные реестра пользователя) и перенаправление папки (рабочий стол, документы). После нескольких логинов к терминальному серверу «ломается» меню ПУСК, многое исчезает и абракадабры. Удаляю vhdx профиля, сначала опять хорошо, потом проблема повторяется. Кто-нибудь сталкивался?
Тоже самое. Решили проблему?
Здравствуйте. Есть задача обновления фермы RDP c WS2012R2 на WS2016 через Clean install. Можно ли прозрачно мигрировать UPD диски с фермы RDP2012R2 на ферму RDP2016? есть ли какие-нить сценарии?
В названии UPD профиля указан SID пользователя, поэтому в теории новый сервер должен подхватить старые UPD профили.
Но основная проблема — разный формат профиля. v4 в windows 2012 r2 и v5 в Windows Server 2016.
Подхватит ли новый сервер старый профиль и будет ли он работать корректно — не знаю.
Наверно проще всего попробовать — развернуть RDS из одного хоста 2016, скопировавть в отдельную папку пару профилей, нацелить коллекцию на этот каталог и попробовать залогинитсья под пользователем.
О результатах рассказать здесь 🙂
Наверное, уже сами проверили, но UPD переезжают без каких-либо проблем. Не так давно постепенно мигрировали с 2012R2 на 2019, т.е. просто добавляли в коллекцию новые серверы с ролью Session host, выводя старые. Единственная рекомендация — заранее обновить сервер с ролями Connection broker, Gateway до 2016-2019.
Спасибо за инфу!
Доброго дня. После перезагрузки сервера при входе по RDP создается локальный профиль, диск профиля не подгружается. Перезагрузка проблему не решила. Как возможно решить данную проблему?
Изучайте события, связанные с профилями (источника User Profiles Service ) в Event Viewer:
Application
Applications and Services Logs -> Microsoft -> Windows -> User Profile Service -> Operational
Там обычно довольно подробно процесс загрузки профиля можно отследить.
Колеги на RDS 2016 столкнулся с проблемой, при монтировании UPD пользователя под администратом выбивает ошибку нет доступа, приходиться игратся назначять администратора владельцем и затем давать полные права. Есть решение данной проблемы ?
тоже интересует. Не решил проблему?
очередная «фича» от мелкософт,попробуйте под локальным администратором примаунтить диск юзверя- у вас получиться без проблем
Имеется в виду встроенной учеткой админа на сервере где хранятся upd диски
тоже интересует. Не решил проблему?
нет у них этих проблем )))
Скипт для преобразования SID дисков UPD в имена пользователей:
$UPDShare = $args[0]
$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] ) )
$user,$i.Name -join "," >> export.csv
}
}
$a = Import-Csv export.csv
$a
А что делать в случае если vhdx файл перемещаемого профиля юзверя не монтируется?Моя учетка доменного админа также имеет полные права на этот vhdx диск
Руками получается открыть/смонтровать vhdx файл?
Попробуйте проверить файл командлетом:
Test-VHD -Path name.vhdx
проверьте файловую систему на диске, где хранится upd
В том-то и дело что руками не получается открыть vhdx файл
Test-VHD -Path name.vhdx( name.vhdx-указать sid диска перемещаемого профиля юзверя или полный путь до yего?)
Коллеги доброго дня! К накипевшему вопросу с корзиной. Судя по всему за 7 лет никто так и не смог найти конкретную проблему и ее решение. Я заметил пару мелочей.
1 — при создании нового UPD корзина работает исправно.
2 — удаление каталога корзины из cmd с админскими правами с помощью rd /s /q C:\$Recycle.bin может помочь, однако не всегда. Например сегодня одному сотруднику эта процедура помогла и он смог удалять файлы без требования админских прав, а вот другому же анологичная процедура не принесла никаких изменений. Если кто-то знает еще возможные варианты решения данной проблемы, очень прошу помочь, это действительно важно поскольку пересоздавать профиль или удалять файлы через shift+del крайне неприятно.
Насчёт UVHD-template.vhdx как и у другого юзера у меня этот шаблон пуст!
Добрый день!
На сколько я помню, проблему решает удаление корзины именно из профиля пользователя: c:\Users\Username\$Recycle.Bin
Если тема активна, просьба помочь или направить в нужное русло. После выхода пользователей, профиль .vhdx (лежащие на отдельном сервере), висит не доступный, как будто продолжает кем то использоваться, не открыть не удалить. Из за это при повторном подключении, пользователю создаётся временный профиль локально
Да, бывает такое, сравнивайте кол-во активных пользовательских сессий с кол-вом подключенных дисков на терминале, отключайте лишние. Иногда отключить удается только разорвав SMB сессию на сервере с общей папкой.
Спасибо за совет, до этого уже тоже дошли постепенно. Получается что пользователь закрыл сессию с хоста, а в SMB как открытые еще висят и не закрываются. Хотелось бы именно понять это
Не могу нигде найти утилиту Sidder.
Но вот как оказалось, можно вывести пользователей, которые используют vhdx диск профиля с помощью powershell:
Get-Acl G:\UVHD\*.vhdx
См. на параметры owner и access.
Поделюсь свое проблемой, может еще кому-то поможет.
Меня замучали временные UPD профили на RDS сервере. Каждый раз чтобы удалить temp профиль приходилось сначала удалять все TEMP профили из Control Panel > System > Advanced System Properties > Advanced > User Profiles > Settings и потом вручную очищать ветку для SID пользователя в реестра
HKLM\SOFTWARE\Microsoft\Windows NT\Current Version\ProfileList, ну и на диске в c:\users.
Как оказалось, самое простое решение — более жесткие политики по disconnect простаивающих сессий Computer Configuration / Administrative Templates / Windows Components / Remote Desktop Services / Remote Desktop Session Host / Session Time Limits -> Set time limit for disconnected sessions — 2 часа
В результате файлы UPD быстрее стали разблокировались и проблемы с temp профилями почти ушли
Может быть подойти с другой стороны и запретить загрузку временных профилей политикой?
Конфигурация компьютера/Шаблоны администрирования/Система/Профили пользователей/Не регистрировать в системе пользователей с временными профилями — Включить?
Пользователи будут долбить чаще с проблемой «не могу войти в систему». Думаю, ее стоит включить только в сочетании с политикой time limit for disconnected session.
Всем привет.
Подскажите коллекция RemoteAPP (опубликовали приложения только) не создаёт диск с профилем! Запускаем к примеру опубликованную 1с -ку диск с профилем не создаётся, но если я зайду на узел сеансов рабочих столов ( test.test.local /admin ) диск создаётся. По правам на сетевое хранилище всё ок. Или всё же RemoteAPP и не должен создавать диск?
Всем доброго дня.
Кто подскажет как правильно переместить VHDX файлы профилей пользователей в новое место без потерь?
Имеется Windows Server 2022, RDS на Hyper-V. Файлы профилей пользователей лежат внутри виртуального диска данных.
Нужно перенести либо Весь виртуальный диск данных RDS сервера вместе со всеми файлами пользователей на новое место — хранилище SYNOLOGY, либо перенести отдельно файлы VHDX пользователей в общий каталог.
С одной стороны переместить весь общий диск сервера проще, но хочется понять возможен ли перенос отдельно файлов пользователей.
Как я понимаю, указание новой локации в мастере просто создаст новые файлы по новому адресу?
К сожалению нет ресурсов для тестирования.
Просто переместите все файлы VHDX файлы на новое место с сохраннеем NTFS прав и владельцев:
xcopy e:\old F:\new /O /X /E /H /K
И перенастроить настройки коллекции RDS на новый путь. Естественно, все сессии пользователей должны быть отключены.
Можете протестировать на паре пользователей. Создайте новую коллекцию с профилями по временным путям, перренесите UPD файлы, заменитие путь в RDS и проверьте.
Здравствуйте, уважаемые коллеги-админы!
А как быть когда коцается UPD диск? Было такое у кого?
Например, есть 3 хоста в коллекции RDS и на одном сервере открыто около 30 сеансов пользователей, которые работают с программой по технологии remoteApp и вдруг внезапно сервер перезагружается (синий экран, либо ещё что-то, либо становится недоступен файловый сервер с шарой), сеанс у пользователя закрывается и после этого пользователь пытается снова открыть программу, но его UVHD-диск уже не подгружается, а создается временный профиль на сервере и временная запись в реестре *.bak. Хотя этот самый UVHD-диск можно открыть проводником, но вот ни один из хостов RDS его уже не воспринимает, не цепляет… даже если удалить временную папку из каталога «users\» и запись в реестре *.bak.
Такое ощущение что реестр в профиле слетает, так как в корне UPD скрытый NTUSER.DAT не загружается как куст если попробовать открыть. Помогает только переименование/удаление старого UPD диска, после этого пользователь заходит на один из хостов куда пошлет broker и создаётся новый диск.
Кстати, пользуюсь утилитой Sidder чтобы сопоставить диск юзера под логин из AD.
ссылка на прогу https://disk.yandex.ru/d/149dHVJ3paouIA
забавно. ваш последний комментарий полностью описывает мою проблему
и я пока даже не знаю что делать с пользователем
а еще почему-то диски откатились на дни назад. ну просто огонь.
Есть терминальная ферма, профили пользователей (UPD) находятся в VHDX файлах. В настройках терминальной коллекции указан путь к UPD \\UserProfiles.domain.local\Profiles$. UserProfiles — CNAME указывающая на старый FS.
Возникла необходимость перtнести UPD на другой сервер.
Вечером:
Была созадана новая VM, на ней поднята роль файл-сервера.
Выключены терминальные серверы, выключен старый FS, отмонтирован виртуальный диск с UPDs. Виртуальный диск с профилями был скопирован и примонтирован к новому FS.
Добавлены необходимые NTFS пермишены и доступы по SMB на новом FS. Изменена CNAME запись UserProfiles, чтоб она указывала на новый FS.
Включил все сервера, зашел под 4 учетными записями, проверил, все работает как нужно.
Утром:
От части пользователей получи жалобы, что UPD не подключается.
Хотя по SMB файлы видны, нагрузки на сеть(10G), сервера нет…
Может кто сталкивался, может я что-то упустил?
В логах вижу ворнинги с кодом 51
An error was detected on device \Device\Harddisk5\DR16 during a paging operation.
может подскажете рабочий метод, есть живая ферма, с перемещаемыми папками профиля.
хочется переехать полноценно на UPD. и даже уже они подключены в RDS.
но теперь хочется понять, как перенести все файлы из ПП в UPD.
в общем — как правильно мигрировать из ПП в UPD
Прочитал все комменты и к удивлению своей проблемы не обнаружил. На узлах в системных событиях без конца появляются предупреждения 158, например:
«Диск 21 имеет такие же идентификаторы, как у по крайней мере одного из дисков, подключенных к системе. Чтобы устранить эту проблему, перейдите на веб-сайт службы поддержки корпорации Майкрософт (http://support.microsoft.com) и введите поисковой запрос «KB2983588».
Лезешь в дискпарт, делаешь каждому диску uni disk — идентификаторы все разные. Может это, как говорится, на скорость не влияет, но хотелось бы услышать мудрое слово от гуру: искать и починить или не трогать, пока работает?