Диски профилей пользователей (UPD) остаются заблокированными после обрыва сессии: пользователь получает временный профиль, пока файл не отмонтируют

Что было. Ферма узлов сеансов RDS с дисками профилей пользователей (.vhdx на общей папке файлового сервера). После обрывов сессий (сеть, зависший клиент, перезагрузка узла) файл профиля остаётся «занятым»: при следующем входе пользователь получает временный профиль, а в журнале Application событие 1511/1515 от User Profile Service и от TerminalServices-RDPClient ошибки монтирования диска.

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

Что предложили (принятый ответ).

  1. Снять блокировку сейчас. На файловом сервере найти открытые файлы: «Управление компьютером → Общие папки → Открытые файлы», либо Get-SmbOpenFile | Where-Object Path -like '*UVHD-*', и закрыть Close-SmbOpenFile -FileId <id>. Если файл смонтирован на самом файловом сервере или узле, Get-VHD -Path \\server\UPD\UVHD-<SID>.vhdx и Dismount-VHD -Path …. Пользователю после этого выйти из временной сессии и войти заново.
  2. Не дать сессиям висеть. Политики завершения отключённых сессий (15–60 минут) и лимита простоя, чтобы висящие сессии не держали диски сутками.
  3. Обновления. Накопительные обновления и на узлах сеансов, и на файловом сервере: стабильность драйвера дисков профилей и SMB чинили не раз.
  4. Файловый сервер. Проверить, что общая папка доступна одинаково с каждого узла (один путь, одинаковые права Полный доступ для компьютерных учётных записей узлов), в кластере проверить владельца тома.

Что мы добавим.

  • Скрипт по расписанию на файловом сервере, который каждые 5 минут ищет открытые UVHD-*.vhdx, для которых нет активной сессии в коллекции (Get-RDUserSession), и закрывает их; это снимает 90 % ручных обращений.
  • Не хранить диски профилей на том же диске, что и системный диск файлового сервера; задержки ввода-вывода превращаются в блокировки.
  • Временный профиль сам по себе безопасен для данных пользователя: его диск не тронут, просто не подключён. Не нужно ничего «восстанавливать», достаточно снять блокировку.

Команда описана в документации PowerShell.