Отключить remotefx windows 10

Обновлено: 08.07.2024

После установки последнего обновления Windows 10 1803 April Update, у пользователей стали некорректно работать RemoteApp приложения, опубликованные на RDS серверах с Windows Server 2012 R2/ Server 2016 (на всех серверах установлены актуальные обновления безопасности). RemoteApp приложения стали работать заметно медленнее, любое действие, которое вызывается щелчком мыши выполняется (отрисовывается?) в 2-3 раза дольше. Особенно медленно отображаются в RemoteApp меню, вызываемые по щелчку правой кнопкой мыши (пункты меню мерцают, приходится нажимать на них по несколько раз, а иногда совсем не появляются).

Окно remoteapp при свертывании/ развертывании отрисовывается некорректно, в сессии залипают клавиши (у меня залипала CTRL), не всегда отображаются выпадающие элементы в меню.

Клиенты Windows 7 и более старых билдов Windows 10 (1703, 1607) при этом работают с remoteapp нормально. В обычном подключении к рабочему столу сервера через RDP все приложения на RDS сервере и меню отображаются нормально.

Таким образом, наши пользователи помимо ошибки CredSSP encryption oracle remediation в мае столкнулись еще и с плохой производительностью RemoteApp в Windows 10 1803. Жаркий получился месяц :).

Для временного решения проблемы можно попробовать в редакторе локальной GPO (gpedit.msc) на RDS серверах изменить значение политики Use advanced RemoteFX graphics for RemoteApp (Использовать дополнительную графику для удаленного приложения RemoteApp) на Disabled (раздел Computer Configuration -> Policies -> Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Remote Session Environment, в русской редакции Windows путь такой: Компоненты Windows -> Службы удаленных рабочих столов -> Узел сеансов удалённых рабочих столов -> Среда удаленных сеансов).

В том случае, если в качестве remoteapp опубликованы графические программы (в частности семейства CAD), то без Remote FX они работать не будут.

Для радиакльного исправления проблемы, вы можете о ткатить текущий билд Windows к предыдущей версии (Recovery Options -> Get Started -> Go back to the previous version of Windows 10).

Однако есть и обходное решение , которое заключается в замене версии клиента RDP на более старую. Т.к. проблемы с производительностью Remoteapp встречались еще в Windows 10 1709, лучше всего использовать библиотеки RDP из 1607 или 1703.
Дело в том, что после апгрейда до Windows 10 1803 в системе устанавливается новая версия клиента RDP, которая на данный момент работает некорректно с опубликованными через RemoteApp приложениями. В April Update 2018 были обновлены файлы mstsc.exe и mstscax.dll .
Убедитесь, что у вас установлена именно версия Windows 10 1803 (OS Build 17133.1) или 1709. Выполните команду

Если заменить данные файлы в каталоге C:\Windows\System32 на версии файлов из предыдущего билда Windows 10 (1703 или 1607), проблема с производительностью RemoteApp исчезает.

Как заменить файлы клиента RDP в Windows 10:

  • Закройте все RDP подключения и запущенные RemoteApp (лучше даже перезагрузить компьютер).
  • Скачайте архив с версиями файлов mstsc.exe и mstscax.dll из Windows 10 1607 (ссылка на скачивание с Я.Диска mstsc-w10-1607.zip ).
  • Скопируйте оригинальные файлы mstsc.exe и mstscax.dll из каталога C:\windows\system32\ в каталог C:\Backup с помощью команд:
    md c:\backup\
    copy C:\windows\system32\mstsc.exe c:\backup
    copy C:\windows\system32\mstscax.dll c:\backup
  • Затем нужно назначить свою учетную запись владельцем файлов mstsc.exe и mstscax.dll в каталоге C:\windows\system32\, отключите наследование и предоставьте себе права на изменение файлов:

takeown /F C:\windows\system32\mstsc.exe

takeown /F C:\windows\system32\mstscax.dll

icacls C:\windows\system32\mstsc.exe /inheritance:d

icacls C:\windows\system32\mstscax.dll /inheritance:d

icacls C:\windows\system32\mstsc.exe /grant root:F

icacls C:\windows\system32\mstscax.dll /grant root:F

  • Замените файлы в каталоге C:\windows\system32\ файлами из скачанного архива.
  • Восстановим оригинальные разрешения на замененых файлах. Включим наследования NTFS разрешений и установим владельцем файлов «NT Service\TrustedInstaller» командами:
    icacls C:\windows\system32\mstsc.exe /inheritance:e
    icacls C:\windows\system32\mstscax.dll /inheritance:e
    icacls C:\windows\system32\mstsc.exe /setowner "NT Service\TrustedInstaller" /T /C
    icacls C:\windows\system32\mstscax.dll /setowner "NT Service\TrustedInstaller" /T /C
  • Осталось перерегистрировать библиотеку:
    regsvr32 C:\Windows\System32\mstscax.dll

Совет . Либо можно выполнить замену, запустив командную строку от имени системы .

Теперь в ваших RemotApp должна восстановиться нормальная производительность,

С помощью VGPU remoteFX можно совместно работать с несколькими виртуальными машиными. Эта функция впервые была представлена в Windows 7 и удалена в качестве параметра для пользователей в Windows Server 2019. Мы знаем, что текущая реализация удаленного VGPU является уязвимой к уязвимостям системы безопасности (подробные сведения о CVE см. в разделе "Часто задаваемые действия"). Поскольку новые уязвимости являются архитектурными, а функция уже удалена из более новых версий Windows, обновления безопасности Windows от 13 апреля 2021 г. и все новые версии Windows больше не будут содержать функцию RemoteFX vGPU.

Мы настоятельно рекомендуем вам выбрать альтернативный вариант VGPU.

Временная шкала

Деprecation: RemoteFX vGPU был удален с выпуском Windows 10 версии 1809 и Windows Server 2019.

Отключение: В обновлениях безопасности Windows за июль 2020 г. (14 июля 2020 г.) на всех соответствующих платформах Windows был отключен VGPU RemoteFX.

Удаление: В обновлении для системы безопасности Windows за апрель 2021 г. (13 апреля 2021 г.) будет удален VGPU RemoteFX со всех соответствующих платформ Windows.

Альтернативы

Чтобы снизить потенциальные угрозы безопасности в VGPU RemoteFX, настоятельно рекомендуем пользователям использовать альтернативную технологию VGPU.

Безопасная виртуализация GPU доступна с помощью дискретного назначения устройств (DDA) в выпусках LTSC Windows Server (Windows Server 2016, Windows Server 2019) и SAC Windows Server (Windows Server версии 1803 и более поздних версий).

Вопросы и ответы

Каков текущий уровень поддержки, который корпорация Майкрософт будет предоставлять для VGPU RemoteFX?

Мы больше не будем выпускать обновления для системы безопасности и другие обновления для удаленного VGPU.

Что произойдет с моим VM с включенным VGPU RemoteFX 13 апреля 2021 г.?

Если перед установкой обновления для системы безопасности от 13 апреля 2021 г. с VM связан адаптер VGPU, необходимо удалить его перед повторной запуском VM.

Безопасная виртуализация GPU доступна с помощью дискретного назначения устройств (DDA) в выпусках LTSC Windows Server (Windows Server 2016 и Windows Server 2019) и SAC Windows Server (Windows Server версии 1803 и более поздних версий). Если вы находитесь на более ранней версии Windows, чем Windows 10 версии 1607, рассмотрите возможность обновления.

С какими уязвимостями безопасности я подаю в случае повторного включается VGPU RemoteFX?

Дополнительные сведения можно найти в следующих обновлениях для системы безопасности:

О технологии RemoteFX от Майкрософт, которая повышает качество работы в режиме удалённого рабочего стола, известно давно. В интернете хватает материалов, демонстрирующих её эффективность. Но большинство оценок носят качественный характер: "вот играем в %game_name%, fps в норме", "вот запустили 3D софт, как будто локально работает! Скриншот здесь, видео там".

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

Кратко о RemoteFX

Конфигурация тестовой среды

Выбор показателей для измерений

Обработка данных и построение графиков

Анализ результатов и наиболее интересные графики

Задержки при обработке ввода от пользователя

Общие сетевые метрики

Загрузка центрального процессора

Переопределение групп сбора данных: _1_task_define.cmd

Принудительная остановка записи данных: _1_task_breake.cmd

Конвертация двоичных данных в CSV: blg2csv.cmd

Нормализация заголовков CSV: blg2csv.ps1

Jupiter Notebook: импорт данных

Jupiter Notebook: отрисовка одной метрики на диаграмму

Jupiter Notebook: отрисовка всех метрик на одной диаграмме

Диаграмма со всеми графиками

Кратко о RemoteFX

Традиционный RDP работает так, чтобы как можно больше работы по отрисовке окна удалённого рабочего стола переложить на клиента: по сети передаются графические примитивы и инструкции, которые должна выполнить клиентская видеокарта. Такой подход, в случае показа видео или использования интерфейса Windows Aero, требует поддержки со стороны клиента. Иначе вместо Aero будет использована упрощённая схема, а обработанный CPU сервера видеопоток передан клиенту в виде растровой графики, производительность отрисовки при этом может оказаться просто неприемлемой. Поэтому приходилось выбирать: либо использовать традиционный RDP только в связке с достаточно производительным клиентским железом, либо отказываться от сложной графики.

При включении RemoteFX клиенту по сети по прежнему передаются растровые кадры. Но есть два существенных отличия от традиционного RDP. Во-первых, вся подготовка и обработка графики перекладывается на GPU сервера, это происходит намного быстрее и разгружает CPU. А во-вторых, используется сжатие кадра, которое выполняет кодек RemoteFX. Это существенно снижает объём передаваемых по сети данных, тем самым разгружая канал связи. Это существенно снижает требования к клиентскому железу, но сохраняет достаточный уровень отрисовки и отзывчивости удалённого рабочего стола.

Конфигурация тестовой среды

Сервер

2 vCPU Intel(R) Xeon(R) CPU E5-2696 v4 @ 2.20GHz

GPU NVIDIA GRID M60-1Qб, Dedicated Memory 929 MB, Shared Memory 4095 MB

гостевая ОС Windows Server 2019 Standart x64 1809 (Version 10.0.17763.1577), DirectX 12

network in/out rate limit 50 Mbps

Клиент

Intel(R) Core(TM) i5-7600K CPU @ 3.80GHz, 3801 МГц, ядер: 4, логических процессоров: 4

network in/out rate limit 100 Mbps

OS Windows 10 Pro 2004 (Version 10.0.19041.685), DirectX 12

1920 x 1080 (32 bit) (32Hz)

на вкладке "Взаимодействие" выбрано "Локальная сеть (10 Мбит/с и выше)"

Выбор показателей для измерений

Качество и производительность удалённого рабочего стола нужно оценить с точки зрения как пользователя, так и потребления облачных ресурсов. Будем собирать данные о частоте кадров отрисовки, задержках отклика на ввод данных, сетевом трафике и загрузке CPU/GPU/RAM. Метрики выбраны с учётом официальных рекомендаций по диагностике.

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

\Графика RemoteFX(*)\Качество кадра

\Графика RemoteFX(*)\Исходящих кадров в секунду

\Графика RemoteFX(*)\Среднее время кодирования

\Графика RemoteFX(*)\Коэффициент сжатия графических данных

\Графика RemoteFX(*)\Пропущено кадров в секунду — у сервера недостаточно ресурсов

\Графика RemoteFX(*)\Пропущено кадров в секунду — недостаточно сетевых ресурсов

\Графика RemoteFX(*)\Пропущено кадров в секунду — у клиента недостаточно ресурсов

\Задержка ввода данных пользователем на сеанс(Max)\Максимальная задержка ввода

\Сведения о процессоре(_Total)\% загруженности процессора

\NVIDIA GPU(*)\% Video Decoder Usage

\NVIDIA GPU(*)\% Video Encoder Usage

\NVIDIA GPU(*)\% GPU Memory Usage

\NVIDIA GPU(*)\% GPU Usage

\NVIDIA GPU(*)\% FB Usage

\Сеть RemoteFX(*)\Общая скорость отправки

\Сеть RemoteFX(*)\Общая скорость приема

\Сеть RemoteFX(*)\Скорость отправки TCP-данных

\Сеть RemoteFX(*)\Скорость отправки UDP-данных

\Сеть RemoteFX(*)\Общая скорость приема

\Сеть RemoteFX(*)\Скорость получения TCP-данных

\Сеть RemoteFX(*)\Скорость получения UDP-данных

\Сеть RemoteFX(*)\Пропускная способность текущего TCP-подключения

\Сеть RemoteFX(*)\Пропускная способность текущего UDP-подключения

\Память\% использования выделенной памяти


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

Методика тестирования

Чтобы оценить эффективность использования выделенной видеокарты на облачным сервере, нужно провести две серии одинаковых тестов: до и после включения отрисовки удалённого рабочего стола на GPU.

В каждой серии выполним следующие тесты:

ввод текста + 3D BenchMark

ввод текста + просмотр локальных видеофайлов

ввод текста + просмотр youtube-ролика

Для оценки влияния теста на задержку обработки ввода от пользователя поверх основной программы открывается стандартный Блокнот и зажимается произвольная клавиша. Окно редактора на протяжении теста будет постоянной частью всех кадров, поэтому исказит результат в лучшую сторону. Чтобы снизить эффект, размер окна уменьшим до 122*156% 99% кадра будут меняться и визуально будет видно, что имитация активности пользователя работает.

В качестве тестов рекомендуется "использовать любые приложения, которые плотно работают с графикой (например, потоковое видео), приложения, использующие DirectX". Результаты первого теста, с точки зрения пользователя (частота кадров и задержка ввода), практически одинаковые. Поэтому строить графики и анализировать их нет особого смысла. Такой тест больше пригодится для диагностики RemoteFX.

Выполнялся при помощи FurMark в полноэкранном режиме.

Локальные видеофайлы воспроизводились в Windows Media Player, равёрнутом на весь экран, без установки каких-либо дополнительных кодеков, по кругу в следущем порядке:

"Ants carrying dead spider": 1920 x 1080, 10667 кбит/с, 19 секунд, 29.97 fps

"Flying Through Forest 1": 1920 x 1088, 48072 кбит/с, 9 секунд, 25 fps

Единственным критерием отбора была динамичность ролика: видеоряд должен был как можно сильнее нагрузить кодек RemoteFX. Но ролик "Flying Through Forest 1" оказался в этом плане интересной находкой: выходной FPS заметно проседал, а входной от запуска к запуску был сильно выше или ниже среднего! Его влияние на различные метрики будет заметно на графиках, которые будут ниже.

В качестве youtube-теста был выбран чудесный ролик "Коста-Рика", который проигрывался в качестве 1080p60 в браузере Firefox, режим "киоск".

Обработка данных и построение графиков

Файлы журналов - blg - имеют двоичный формат: легко открываются в родной программе, графики всех счётчиков на одной шкале, можно выключать/включать/масштабировать/etc. Но чтобы работать с данными из нескольких файлов, нужно другое решение.

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

Затем в Jupiter -блокноте при помощи библиотек pandas и matplotlib прочитаем csv (см. Приложение, Jupiter Notebook: импорт) и построим графики (см. Приложение, Jupiter Notebook: одна метрика — одна диаграмма).

Анализ результатов и наиболее интересные графики

Задержки при обработке ввода от пользователя


До включения групповых политик сильнее всего на обработке ввода сказалось проигрывание локальных видеофайлов: в среднем 45 мс при рекомендованных 33 мс.

Включение отрисовки через GPU в групповых политиках стабилизировало этот показатель во всех сценариях.

Частота кадров



После включения GPU ускорения ситуация явно становится лучше, особенно в 3D тесте. Результаты двух других тестов хоть и демонстрируют улучшение, но недостаточно: провалы на графиках соответствуют визуальным "рывкам" при просмотре.

Воспроизведение "Flying Through Forest 1" (1920 x 1088, 48072 кбит/с, 9 секунд, 25 fps): от запуска к запуску на вход кодека RеmoteFX поступало либо повышенное либо пониженное количество кадров. Возможно, причина в перекодировке из формата QuickTime, "лишних" 8 пикселях ширины кадра или битрейте.

"Коста-Рика" также вызвал "проседание" FPS у RemoteFX: его проигрывание в браузере в 1080p60 ложилось на центральный процессор. Возможно, он просто не успевал перекодировать из 60fps и подготовить нужный кадр для RemoteFX.

Общие сетевые метрики



При включении GPU ускорения происходит рост сетевого трафика, который зависит от сценария теста.

Видно, что самым тяжёлым для кодека RemoteFX опять оказался тот же самый видеофайл, "Flying Through Forest 1". Первый запуск этого теста, когда наблюдается провал входящих кадров, также видим скачки трафика до 60 Мбит/с и потери до 30% - 40%.


Загрузка центрального процессора


Включение GPU ускорения практически вдвое разгружает центральный процессор, за исключением youtube-теста. И даже здесь удалось уйти от периодической 100% загрузки.

Загрузка видеокарты





Возможно, разгадка странного поведения второго ролика кроется в графике 17: входящих для RemoteFX кадров было больше, когда видеокарта была больше загружена кодированием.

Выводы

В RDP протоколе частота кадров ограничена 30-ю кадрами в секунду. Со стороны сервера увеличить лимит FPS можно, но бессмысленно: на практике терминальная сессия перестала отрисовывать окно и реагировать на действия как раз при проигрывании "того самого" видеофайла :).

Итоги в цифрах:

Частота кадров стабилизируется почти на максимально возможном для протокола уровне: 29-30 FPS в среднем вместо 25 или даже 15 FPS

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

Заметно, на 20-50 %, разгружается центральный процессор

Немного возрастает утилизация канала связи, на 3-6 Мбит/сек

Утилизация GPU составила до 20%

Результат действительно очень хороший: RemoteFX значительно увеличивает качество работы в терминальной сессии — плавность отрисовки окна и отклик на действия пользователя сравнимы с локальным режимом. Даже "тяжёлые" сценарии показывают в этом плане заметный прирост.

Тесты, конечно, носят искусственный характер: выбором способа нагрузки на кодек RemoteFX можно как "завалить" так и "подтянуть" его результаты. Возможно, более релевантным было бы проведение чего-то вроде "конфетти-теста", например, такого.

Что дальше

Так как на этом этапе тесты проводились для одной сессии и при включении лишь рекомендованных настроек, то далее имеет смысл протестировать производительность:

при одновременной работе нескольких пользователей

при включении в групповых политиках различных дополнительных настроек кодека

Рекомендация по тестированию взята из хоть и старого, но очень подробного описания RemoteFX

Как сделать работу с Microsoft Remote Desktop лучше. Ветка комментариев про UDP, TCP, потери и т.д. В самой статье есть ссылки на спецификации мультитранспортного расширения для протокола RDP

Приложения

Переопределение групп сбора данных: _1_task_define.cmd Принудительная остановка записи данных: _1_task_breake.cmd

Заголовки столбцов содержат различные уникальные данные (id терминальной сессии или оборудования), которые будут несовпадать из-за применения групповых политик и выхода-входа на терминальный сервер. Приводим к единому виду с помощью PowerShell-скрипта:

Jupiter Notebook: отрисовка одной метрики на диаграмму Jupiter Notebook: отрисовка всех метрик на одной диаграмме

Общая ось X на все графики: метрики тестов располагаются строго друг под другом - удобно сопоставлять разные метрики между собой.


Продолжение истории будет на следующей неделе. Спасибо за внимание!

Что ещё интересного есть в блоге Cloud4Y

Подписывайтесь на наш Telegram-канал, чтобы не пропустить очередную статью. Пишем не чаще двух раз в неделю и только по делу.

моя ОС-Windows 7, и у меня есть удаленный хост Windows 8.1, который я могу использовать RDP для перенаправления локального usb-устройства на windows 8.1. Но перенаправление USB не работает в Хосте windows 10. Как включить его в windows 10?

у меня тоже были проблемы с помощью RemoteFX USB Redirection на клиенте Windows 7 на удаленный хост в Azure под управлением Windows 10, в то время как та же конфигурация компьютера успешно перенаправляет USB на Windows 8.1 Azure VM.

чтобы быть ясным, у меня не было проблем с перенаправлением USB для общих устройств (флэш-накопители, принтеры и т.д.), которые поддерживаются с настройкой vanilla удаленного рабочего стола. Этот тип перенаправления USB, например, позволяет мне видеть флэш-накопитель, который я подключаю к своему Клиент Windows 7 отлично работает для меня, как я вижу в Проводнике в Azure VM.

сравнение стандартного перенаправления RDP и перенаправления RemoteFX подробно описано в этом блог запись.

computer icon

моя конкретная проблема перенаправления USB относится к классам устройств, не обрабатываемых базовым перенаправлением высокого уровня RDP, и для этого я включил перенаправление USB RemoteFX в предыдущих выпусках Windows. Когда это работает правильно, я получаю значок компьютера ( )появится в строке заголовка удаленного рабочего стола, позволяя мне выбрать, какое устройство должно быть перенаправлено на виртуальную машину.

title bar

заголовок, когда RemoteFX USB перенаправление работает

следуя инструкциям на многочисленных веб-ресурсах для включения перенаправления RemoteFX USB работал для меня для более ранних версий ОС (например, Windows 8.1 на Azure VM), но не будет работать для любой Windows 10 VM я создал. Заголовок упорно оставался без функции перенаправления RemoteFX USB.

enter image description here

заголовок В Windows 10, когда функция перенаправления USB не работает

я, наконец, наткнулся на этот нить что решило мою проблему.

кажется, что на хосте Windows 10 требуется еще один шаг по сравнению с предыдущими версиями ОС и что есть:

Run gpedit.msc на целевой виртуальной машине (целевой виртуальной машине windows 10), чтобы запустить Group Policy Editor . gpedit.msc можно ввести из диалога запуска (используйте WinKey+R ) если у вас есть доступ администратора, или запустить с повышенными правами CMD.EXE и типа gpedit.msc из командной строки.

выберите пункт Computer Configuration \ Administrative Templates \ Windows Components \ Remote Desktop Services \ Remote Desktop Session Host \ Device and Resource Redirection\ Do not allow supported Plug and Play device redirection из treeview Group Policy Editor .

странно установите этот пункт в Disabled

Run gpupdate /force в командной строке

по крайней мере, отключите сеанс RDP и снова подключитесь, если это не работает перезагрузите целевую виртуальную машину.

теперь вам нужно обновить политику машины, используя gpupdate / force из командной строки. Затем перезагрузите компьютер, чтобы изменения вступили в силу, и включите опцию перенаправления RemoteFX USB в клиенте подключения к удаленному рабочему столу. Как только он включен, перейдите на вкладку локальные ресурсы, нажмите Еще в разделе локальные устройства и ресурсы, и вы увидите новую настройку USB-устройств RemoteFX. Этот параметр можно использовать для сопоставления многих типов USB-устройств, которые невозможно с перенаправлением USB RDP ванили.

Do как на физической машине Windows, так и на удаленном хосте

все изменения находятся под следующим:

  • Я также изменился с "администраторы"на" администраторы + пользователи"

USB RemoteFX Passthrough не работает на некоторых ПК

У меня было несколько ПК, которые соответствовали спецификациям оборудования, но отсутствовали опции Remotefx в RDP.

решение было такое:

в программах и функциях удалите"Intel(R) USB 3.0 eXtensible Host Controller Driver"

Читайте также: