Размер рабочего стола по умолчанию Windows Server 2012

Вопрос или проблема

Я использую Windows Server 2012 r2 Datacentre edition, работающий на виртуальной машине Azure, и столкнулся с странным поведением, в котором, надеюсь, кто-то сможет мне помочь разобраться.

Говоря просто, когда я использую AutoLogon для обеспечения наличия рабочего стола для конкретного пользователя после перезагрузки, размер рабочего стола всегда оказывается 1024×768. Я пытался изменить это различными способами, включая код, но каким бы образом я ни менял разрешение, метод/вызов API/команда PowerShell всегда, кажется, успешно выполняется, но затем при последующих запросах возвращается к 1024×768. Сначала я думал, что это какое-то значение по умолчанию, налагаемое Windows, когда отсутствует драйвер дисплея, но после написания приложения, которое перечисляет поддерживаемые режимы отображения, оно возвращает гораздо больше поддерживаемых разрешений. Более странно то, что если я использую инструмент удаленного рабочего стола и устанавливаю разрешение на что-то вроде 1920×1080, то рабочий стол изменяет размер, и даже после завершения удаленной сессии запросы на размер рабочего стола теперь показывают новое разрешение 1920×1080… до тех пор, пока ВМ не перезагрузится.

Я уже некоторое время исследую это явление безуспешно – ручное изменение каждого вхождения 1024 и 768 в реестре тоже ничего не дает.

Есть ли у кого-нибудь идеи, как я мог бы изменить значение по умолчанию размера рабочего стола для пользователя, когда отсутствует устройство отображения, и откуда берется это “волшебное” разрешение 1024×768?

ИЗМЕНИТЕ: Спасибо за ответы, и хотя я их ценю, я уже довольно уверен, что это не будет решено простым хаком реестра или утилитой автозапуска (в основном потому, что я уже их пробовал) – я вполне уверен, что проблема заключается в том, что есть драйвер отображения (Hyper-V Video), но нет устройства отображения.

Спасибо

Вы можете запустить regedit.exe на своем сервере в cmd и найти эти записи реестра.

Чтобы изменить разрешение, вам нужно посмотреть в \Video и найти правильный GUID дисплея, а затем изменить значения разрешения:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\” & sDisplayGUID & “\0000\DefaultSettings.XResolution

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\” & sDisplayGUID & “\0000\DefaultSettings.YResolution

Надеюсь, это вам поможет.

Поскольку вы уже используете AutoLogon, есть старая программа под названием “resswitch”, которая изменяет разрешение при входе в систему.

http://www.codeproject.com/KB/tips/resswitch.aspx

Она древняя, и я не помню, когда в последний раз ее использовал, с времен XP. Есть альтернатива под названием “displaychanger” (http://12noon.com/?page_id=80), которая бесплатна для образовательных целей, но в остальном нет.

Ответ или решение

Вопрос о разрешении рабочего стола в Windows Server 2012 R2, особенно в контексте использования виртуальных машин Azure и применения инструментов автоматического входа, поднимает несколько интересных аспектов.

Проблема с разрешением рабочего стола

Вы столкнулись с ситуацией, когда после перезагрузки виртуальной машины рабочий стол всегда устанавливается в разрешение 1024×768. Это очень распространенное поведение для систем, где не подключен физический монитор. Изучая ваше описание проблемы, можно выделить несколько ключевых моментов:

  1. Отсутствие физического дисплея: Когда виртуальная машина работает без подключённого дисплея, Windows может использовать предустановленное "безопасное" разрешение 1024×768. Это поведение может быть связано с драйверами виртуального дисплея (в вашем случае, Hyper-V Video), которые не предоставляют возможность конфигурировать разрешение в соответствии с потребностями рабочего окружения.

  2. Ручное изменение разрешения: Вы уже попробовали изменить разрешение через различные API и инструменты PowerShell, однако изменения не сохраняются. Это может говорить о том, что система не воспринимает эти команды должным образом без активного дисплея.

  3. Использование Remote Desktop: Интересный момент заключается в том, что при подключении через Remote Desktop заданное разрешение (например, 1920×1080) сохраняется до перезагрузки. Это говорит о том, что сам механизм удаленного подключения настраивает окружение корректно, однако после перезагрузки система возвращается к исходным параметрам.

Рекомендации по изменению разрешения

Несмотря на то что вы уже попробовали несколько методов, я предлагаю несколько подходов, которые могут помочь:

  1. Изменения в реестре: Вы правильно указали путь к значениям реестра, которые необходимо изменить. Пожалуйста, убедитесь, что вы находитесь под администраторскими правами и сможете сохранять изменения. Формат значений:

    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\<GUID>\0000\DefaultSettings.XResolution
    • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\<GUID>\0000\DefaultSettings.YResolution

    Подберите правильный GUID для вашего виртуального дисплея и измените значения на желаемые.

  2. Использование стороннего программного обеспечения:

    • Рассмотрите возможность использования таких инструментов, как resswitch или displaychanger для автоматической смены разрешения рабочего стола при входе в систему. Вы можете установить их как части процесса входа пользователя.
  3. Создание скрипта запуска: Вы можете создать PowerShell-скрипт, который будет запускаться при входе в систему и установит нужное разрешение, используя команду Set-DisplayResolution. Однако, для корректного выполнения данного скрипта, возможно, придётся изменять политику безопасности системы.

Заключение

Выявление и изменение настроек рабочего стола в виртуальной среде может быть сложной задачей, особенно без подключения физического дисплея. Рекомендуется воспользоваться предложенными методами и по возможности экспериментировать с настройками в безопасной тестовой среде. Если указанные потенциалы не помогут, возможно, стоит рассмотреть использование других виртуальных решений или методов, обеспечивающих эмуляцию физического дисплея.

Оцените материал
Добавить комментарий

Капча загружается...