Проблемы с масштабированием windows server 2012

Обновлено: 03.07.2024

Домівка Как настроить нормальный масштаб интерфейса, размер фонтов в клиенте удаленного рабочего стола RDP при высоком разрешении экрана–самый простой и работоспособный вариант (Remote Desktop DPI scaling issues)

У меня появился новый ноутбук – можно сказать, классика рабочего жанра – Lenovo ThinkPad T580. В этом ноуте все отлично – и характеристики его железа (на канале будет отдельный обзор), и, собственно дизайн, вес и прочие эргономические вещи… И как главная плюшка – у ноута отличный 15” экран с разрешением 3840х2160 – 4К.

Но, как часто бывает – все эти плюшки не только приятны, но и имеют отрицательные стороны. Вы видели, какой масштаб PPI (DPI) стоит для таких вот 15” экранов 4К 3840х2160, подобных Lenovo ThinkPad T580?! – правильно, 250% по умолчанию! Т.е. именно настолько масштабируется изображение, чтобы текст на экране был читаемый глазом, а в элементы управления можно было попадать мышкой. Кто не знаком с эффектом DPI/PPI на маленьких экранах с большим разрешением (от 4К и выше) – рекомендую заглянуть в настройки дисплея в Windows и там поиграться в настройками Scaling’а. А для наглядности – вот вам картинка для сравнения вида интерфейса в масштабе 100% и 225%

100-225-comparison

При чем здесь DPI/PPI и масштабирование, спросите вы? А при том, что представьте себе, что у вас есть приложение, которое ничего не знает о том, в каком масштабе отображать картинку внутри себя и никакого масштабирования внутри такого приложения не происходит. В результате – внутри окна приложения будет все настолько мелким, насколько это выглядит таковым в приведенном выше примере (слева).

И таким вот нужным и часто используемым приложением, которое «не понимает масштабирования» для экранов с большим разрешением – является Microsoft Remote Desktop Client (да и многие прочие клиенты удаленного рабочего стола RDP). При подключении к удаленному компьютеру – рабочий стол этого компьютера в RDP выглядит катастрофически мелким, поскольку картинка RDP оттуда – отображается с масштабированием DPI удаленного сервера, которое может быть и 150%, и даже 100%. Работать с таким удаленным интерфейсом на экране 4К размером 15” – нереально, курсора мышки иногда просто не видно 😉

Так поменять масштабирование на удаленном сервере. – ага, сейчас, по умолчанию на сервере такая опция заблокирована – для изменения масштабирования интерфейса в сеансе RDP на сервере надо провести шаманские пляски (если у вас есть права на это), да и не будешь на каждом сервере это менять…

Итого, остается только вариант научить клиента удаленного рабочего стола RDP («родного» Microsoft’овского или какого либо другого) понимать масштабирование и учитывать это при соединении с удаленным сервером.

После достаточно длительного поиска в Инете и чтения разных «рецептов танцев с бубнами» вокруг проблемы масштабирования DPI/PPI в RDP, я пришел к выводу, что самым работоспособным рецептом решения проблемы является вариант, описанный в статье [Fix] Remote Desktop DPI scaling issues . Во избежание потери информации (если вдруг страницу или файлы удалят, сайт закроют) – сделаю вольный перевод предложенного материала/копию файлов и у себя на блоге.

Итак, метод лечения проблемы масштабирования интерфейса для стандартного RDP клиента Microsoft крайне прост и заключается в копировании специального файла-манифеста для RDP, который собственно и содержит в себе команду включения того самого масштабирования для удаленного подключения:

У меня стоит на весь экран , ничего не помогает. Заметил то , что в свойствах 1cv7.exe ставлю галочки (например запускать в режиме 640*480) ничего через терминал не работает ,локально на сервере -все ОК , такое ощущение , что прав нет именно на это приложение , хотя права полные. (21) MaxDavid, Включал -выключал все одно и именно когда заходишь через терминал. Проблема в том что через терминал стартер никак не реагирует на изменение свойств совместимости , а локально реагирует ! Люди добрые , я уже всю голову сломал , поставил локально на сервере галочку использовать одинаковый масштаб для всех дисплеев и о чудо , на моем ноуте через терминал (разрешение 1920х1080) 77 запустилась в нормальном масштабировании , но вот некоторые меню windows (например меню правой кнопки мыши ) мутные . SOS . 77 стоит на Win 2003 server -ВСЕ ОК , на Win 2012 server - проблема , может где настройки масштабирования какие есть ы 2012 ? (26) vcv, RemoteApps Знаю ,что это но никогда не настраивал :( Сегодня зашел с другого компа ,под Администратором шрифты мутные , под юзером с ограниченными правами все ОК , с моего ноута (win 10,1920х1080) под любым юзером мутный шрифт (30) Andrey1804, не, ну правда, количество точек на дюйм (размеры шрифтов в версиях старше xp) какие стоят? Жалею , что 2012 поставил надо было остановиться на 2008, так и не решил проблему .Буду признателен за новые мысли . Да тут вообще все не понятно , 1920*1080(win10)-RDP-win2003 server -полет отличный
1920*1080(win10)-RDP-win2012 server -Туман, 1280*1024(Win7)под админом -RDP-win2012 -туман,1280*1024(Win7)под User-RDP-win2012 -Все ок!
ГДЕ ЛОГИКА ? (36) Xershi, а толку все равно с ноута ,где fullHD мутно под любым юзером

Типы приложений, как они масштабируются (или не масштабируются)

Теперь давайте рассмотрим, какие методы должны использоваться для существующих Windows приложений при высоких значениях DPI. Следующая таблица обобщающая, позже мы рассмотрим различные случаи более подробно.

DPI-Aware флаг не установлен DPI-Aware флаг установлен
Не DPI-Aware Нужно использовать DPI виртуализацию Нужны исправления от разработчиков
DPI-Aware Нужно использовать масштабирование в стиле Windows XP Всегда масштабируется правильно

Приложения вообще не заботящиеся о DPI — это либо очень старые или плохо написанные, но, тем не менее, по-прежнему используемые. Одним известным примером является ITunes от Apple для Windows. Здесь разработчики используют системные шрифты для GUI и, не заботясь о фактических размерах шрифта, они жестко привязывают размеры окон к разрешению 96 DPI, естественно искажая GUI, когда при более высоких значениях DPI увеличиваются размеры шрифтов.

Такие приложения требуют нового метод масштабирования «виртуализации DPI», к сожалению, это часто делает интерфейс размытым. В противном случае вы столкнетесь с проблемами начиная, от обрезания текста до перекрытия элементов контроля, иногда, делая GUI полностью непригодным (к счастью, это, случается редко). За эти годы я собрал несколько образцов скриншотов не корректных приложений.

Пример приложения, работает только при DPI равном 96

Приложения умеющие подстраивать свой GUI под различные значения DPI, но не имеющие DPI-Aware флага — Это типичные приложения эпохи Windows XP. Здесь разработчики позаботились, чтобы получить фактические размеры шрифтов системы перед созданием GUI. Такие приложения отображаются корректно при использование масштабирования в стиле Windows XP. К сожалению, так как они не устанaвливают DPI-Aware флаг, чтобы сообщить Windows этот факт, для них, по умолчанию, будет использована «DPI виртуализация», делая их GUI нечетким. Это может вам не понравиться, так что, вы, возможно, захотите принудительно использовать стиль масштабирования Windows XP для таких приложений.

Пример такого приложения и разрешение 150% (144 DPI)

Приложения умеющие подстраивать свой GUI под различные значения DPI, имеющие DPI-Aware флаг — Это новейший тип приложений которые полностью беспроблемны, независимо от настроек DPI. DPI-Aware флаг установлен автоматически для Windows Presentation Foundation (WPF) и GDI+ приложений, так как эти APIs предоставляют встроенные средства масштабирования. Разработчикам использующим старый GDI API и (удивительно) Windows Forms, нужно вручную помечать свои DPI-Aware приложения.

Выбор метода масштабирования для ваших приложений


После того как вы решили что вы хотите использовать высокое значение DPI, ваш выбор метода масштабирования зависит от приложений в которых вы работаете. Имейте в виду, что, отключить «DPI виртуализацию» означает, установить флажок (check box) с некорректным названием «Использовать масштабы в стиле Windows XP» и наоборот.

•Если вам так невероятно повезло использовать только те приложения, которые являются одновременно DPI-Aware и устанавливают нужный флаг, тогда не имеет значения какой метод масштабирования вы выберете. Все приложения будут использовать масштабирование в стиле Windows XP, а DPI виртуализация никогда не будет использоваться.
•Если вы используете только хорошо написанные DPI-Aware приложения, но некоторые из них не устанавливают необходимый флаг, вы можете отключить «DPI виртуализацию». Таким образом, все приложения будут отображаться правильно без какого-либо замыливания вследствие масштабирования. Если ваш монитор имеет очень высокую плотность пикселей, такую, что масштабированные растровые изображения больше не выглядят размытыми, вы, возможно, захотите включить DPI виртуализацию в любом случае.
•Если у вас есть одно или несколько приложений не приспособленных к изменению DPI и не имеющие DPI-Aware флага, необходимо включить DPI виртуализацию, если вы не готовы мириться с перекошенным GUI приложений. К сожалению, тут возникает еще одна проблема, потому что, Microsoft реализовала эту опцию неудобно. Вы можете включить DPI виртуализацию только для всей системы, а не для отдельного приложения, а затем выборочно отключать для отдельных приложений.

Напоминаем, что в Windows 8.1 уже нет возможности выбора в этом вопросе. Если вы работаете при разрешении в 120 точек на дюйм (125%), каждая программа будет вынуждена использовать масштабирование в стиле Windows XP, a если вы работаете с более высоким разрешением, каждая программа, которая не является DPI-Aware, будет использовать по умолчанию «DPI виртуализацию».

Отказ от DPI виртуализации для отдельных приложений


После того как вы решили включить DPI виртуализацию или вы работаете в Windows 8.1, с разрешением более чем 120 точек на дюйм, вы можете проверить систему на предмет наличия DPI-Aware приложений, которые не имеют соответствующий флаг. И вернуть им возможность использовать масштабирование в стиле Windows XP, для которого они предназначены. Есть два способа сделать это, первый работает только для 32-разрядных приложений, второй универсален и подходит также для 64-битных приложений.

32-разрядные приложения — Это просто: щелкните правой кнопкой мыши на исполняемом файле в Проводнике Windows, выберите диалоговое окно «Свойства», перейдите на вкладку «Совместимость» и установите флажок «Отключить масштабирование изображения при высоком разрешении экрана». Вот и все, в Windows 8.1 это также работает для 64-битных приложений.

64-разрядные приложения — Без всякой видимой причины, возможно чтобы позлить пользователей 64-битных приложений, в Windows 8 и более ранних, упомянутый выше флажок, для 64-разрядных приложений отключен, хотя сам вариант вполне функционален, если внести изменения непосредственно реестр! Так что, запустите редактор реестра и перейдите к этому ключу:

Теперь добавьте строковое значение (REG_SZ), чье имя является полным путем к исполняемому файлу приложения и значением которого является HIGHDPIAWARE. Я рекомендую, чтобы вы сначала изменили несколько 32-битных приложений, как описано выше, чтобы вы могли увидеть некоторые примеры значений в этом ключе реестра.

Мы рассмотрели, как можно использовать настройки DPI на Windows Vista и более поздних версиях. И если вы когда-нибудь задумывались, для чего предназначена опция совместимости — «Отключить масштабирование изображения при высоком разрешении экрана». И почему она ничего не делает на вашей системе, теперь вы знаете: она эффективна, только если у вас включена общесистемная опция «DPI виртуализации» и только для приложений, которые не устанавливают DPI-Aware флаг должным образом, но при этом корректно используют масштабирование в стиле Windows XP.

date

27.12.2017

directory

Windows 10

comments

комментариев 16

При использовании мониторов с высоким разрешением (4k DPI) в Windows 10 пользователи часто сталкиваются с тем, что текст, значки и другие элементы устаревших программ, несовместимых с экранными режимами HiDPI, становится слишком мелким, размытыми и нечитаемыми.

Частично эта проблема была исправлена в обновлении Fall Creators Update за счет внедрения дополнительной поддержки динамического масштабирования DPI, однако при подключении к рабочему столу удаленного компьютера по RDP, проблема масштабирования все еще сохраняется (все также отсутствует поддержка нормального масштабирование для клиента mstsc.exe).

В Windows 8.1 и Windows 10 по-умолчанию локальный DPI передается в RDP подключение, в результате все значки и текст в таком окне становятся очень мелкими и плохо читаемыми.

win10 rdp 4k resolution

В качестве обходного пути можно использовать для RDP подключений приложение RDCMan, но есть решение и для родного клиента mstsc.exe.

Смысл в том, что для конкретных приложений можно создать отдельный файл манифеста (.manifest).

Чтобы этот функционал заработал, чтобы Windows при запуске приложения пыталась сначала получить данный из файла манифеста приложения. Для этого в ветке реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide создать ключ типа DWORD (32 бит) со именем PreferExternalManifest и десятичным значением 1.

PreferExternalManifest

Затем в каталоге %SystemRoot%\System32\ (в нем хранится клиент mstsc.exe) нужно создать файл mstsc.exe.manifest со следующим текстом:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"

name="Microsoft.Windows.Common-Controls"
version="6.0.0.0" processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.21022.8"
processorArchitecture="amd64"
publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<ms_windowsSettings:dpiAware xmlns:ms_windowsSettings= "http://schemas.microsoft.com/SMI/2005/WindowsSettings" >false</ms_windowsSettings:dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>

mstsc.exe.manifest

Примечание. Данные значения для файла манифеста можно получить самостоятельно из .exe файла приложения с помощью утилиты Resource Hacker. Для этого нужно открыть файл mstsc.exe с помощью Resource Hacker. Скопируйте данные из раздела Manifest->1->1033 (для английской Windows) и добавьте секцию с флагом dpiAware со значением false.

Перезагрузите Windows, и попробуйте удаленно подключиться к другому компьютеру/серверу с помощью mstsc.exe. Как вы видите, содержимое RDP окна теперь отображается нормально.

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

В этой статье рассказывается, почему нельзя расширить объем Windows Server 2012 R2 Disk Management или с помощью команды Diskpart, и как легко решить эту проблему.

Не удается увеличить объем

1. Почему нельзя расширить том с помощью Server 2012 Diskpart cmd

Многим администраторам серверов нравится использовать инструмент командной строки. к расширить раздел in Windows Server 2012, Diskpart является одним из вариантов, который является встроенным инструментом Windows XP. Однако он работает только при ограниченных условиях. Многие люди получают ошибку при расширении раздела с помощью этого собственного инструмента, например:

  • «Том не может быть расширен, потому что файловая система не поддерживает его».
  • «На указанных дисках недостаточно свободного места для расширения тома».
  • «Размер расширения меньше минимального».

Нажмите Windows и R клавиши вместе на клавиатуре, ввод diskpart и нажмите Enter, напишите help extend в командной строке и нажмите Enter еще раз, тогда вы увидите причины, по которым Diskpart не может расширить том в Windows Сервер 2012

Diskpart restrictions

  • Чтобы расширить раздел на базовом диске, должно быть смежное нераспределенное пространство справа и на том же диске.
  • Только разделы, отформатированные с NTFS или без файловой системы (RAW) может быть расширен.

Другими словами, Diskpart может только расширить раздел NTFS, удалив смежный том справа.

2. Почему нельзя расширить том в Server 2012 Disk Management

То же самое с Diskpart, Server 2012 Управление дисками не может расширить раздел, уменьшив другой, Раздел FAT32 нельзя уменьшить или расширить.

Потому что нераспределенное пространство может быть сделано только справа в то время как сокращение раздела (например, D :). Ни команда Diskpart Extend, ни Управление дисками Расширить том Функция может расширить Незанятое пространство на несмежный диск C: или правый раздел E.

Как видно на скриншоте, Расширить объем серым цветом для дисков C и E после сжатия D.

Extend volume disabled

Есть две дополнительные причины, по которым Server 2012 не может расширить раздел на MBR диск.

Cannot extend

① Незанятое пространство который удален из основного раздела, не может быть расширен на любой логический диск, Свободное место удаленный с логического диска не может быть распространен на любой основной раздел.

На MBR-диске максимум 4 записей в секторе основной загрузочной записи, так что вы можете создать максимум 4 основных раздела или 3 основных плюс расширенный раздел. Дополнительные разделы могут быть созданы только как логические в расширенном разделе.

Как видно на скриншоте, дисковое пространство логического диска D после удаления конвертируется в свободное. Это свободное пространство по-прежнему является частью расширенного раздела. При щелчке правой кнопкой мыши по диску C расширение тома по-прежнему отключено.

② Вы не можете расширить раздел более чем на 2 ТБ в Windows Server 2012 Управление диском.

Как вы видите на моем сервере, диск F: - это NTFS, и справа есть непрерывное нераспределенное пространство, но Расширение громкости отключено, Тоже.

Это связано с тем, что максимальный размер раздела на MBR-диске составляет 2 ТБ. Если вы инициализировали диск 4 ТБ как MBR, можно использовать только 2 ТБ. Оставшееся 2 ТБ пространства отображается как Незанятое, его нельзя использовать для создания нового тома или расширения другого с помощью управления дисками.

Extend Volume disabled

3. Что делать, если не удается увеличить объем Windows Server 2012

В большинстве случаев причина, по которой невозможно расширить том в Server 2012 Disk Management, заключается в том, что Нераспределенное пространство не является смежным. Чтобы решить эту проблему, вам необходимо переместить раздел D вправо и освободить место за диском C.

Что делать, если не удается увеличить объем в Windows Server 2012 r2 после сжатия раздела:

Затем нераспределенное пространство перемещается в левую сторону.

Move Unallocated space

Шаг 2: Щелкните правой кнопкой мыши C: диск и выберите "Resize/Move Volume"снова перетащите правая граница вправо во всплывающем окне.

Затем нераспределенное пространство объединяется с диском C :.

Unallocated add to C

Шаг 3: Нажмите на Apply в левом верхнем углу, чтобы вступить в силу.

Если вы уже уменьшили размер диска D и не можете расширить том E с помощью Server 2012 Disk Management, или если вы не можете расширить раздел FAT32, выполните действия, описанные в видео, чтобы изменить размер раздела с помощью NIUBI:

Video guide

если ты не может расширить раздел за пределы 2 ТБ in Windows Server 2012 Управление дисками, следуйте инструкциям в видео, чтобы конвертировать MBR диск в GPT а затем расширить раздел с помощью Нераспределенного пространства:

Video guide

Помимо помощи в решении проблемы, которая не может увеличить объем в Windows Server 2012 R2, NIUBI Partition Editor помогает объединять, копировать, конвертировать, дефрагментировать, стирать, скрывать, сканировать разделы и многое другое. Лучше, чем другие инструменты, он имеет уникальные 1-секундный откат, Виртуальный режим и Отменить-на-хорошо технологии для защиты вашей системы и данных.

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