Как изменить разрешение компьютера Amazon EC2 с Windows?


9

(Я спорил между публикацией этого здесь, ServerFault и StackOverFlow. Решено для этого. Надеюсь, это в нужном месте.)

Мы запускаем наш набор для тестирования пользовательского интерфейса, используя Selenium Grid 2, на машине с Amazon EC2 Windows (которая запускается с помощью Amazon CloudFormation API). У меня вопрос, как мне изменить разрешение этой машины?

Если я удаленно в него, я могу указать разрешение с помощью удаленного рабочего стола. Но очевидно, что это не навсегда изменит разрешение. Когда мы запускаем наши тесты, разрешение настолько мало, что браузер объединяет элементы и приводит к сбою тестов.

Любые идеи? Что-то, что я могу вставить в рецепт CloudFormation? Могу ли я что-то сделать с изображением до создания AMI?

Снимок экрана диспетчера устройств

Спасибо.


1
Интересно. Я думаю, это должен быть стандартный экземпляр, поэтому графические карты CUDA для него не назначены. Итак, вы работаете со стандартной виртуальной видеокартой. Как это выглядит в диспетчере устройств? Можете опубликовать скриншот? Вы можете быть в состоянии принудительно повысить его, войдя в консоль:mstsc.exe /console
Пол

@ Пол, я добавил скриншот. Это стандартный экземпляр. Windows Server R2. Спасибо.
Джоэл

@ Джоэл, ты когда-нибудь разрешал это? Я пытался найти способы сделать это в течение нескольких дней, в том числе используя ответы ниже, но пока не повезло. При перезагрузке или создании из AMI (даже если к ним применены ответы) они по-прежнему запускаются с разрешением 1024x768.
Шон

Ответы:


4

Отказ от ответственности: TightVNC не является безопасным, поэтому, если безопасность является проблемой, вам может потребоваться найти другой подход. Весь процесс займет всего несколько минут, поэтому дыра в безопасности небольшая, но тем не менее.

  1. Установите TightVNC Server на экземпляр EC2, чтобы вы могли войти в консоль
  2. Отключите все сеансы удаленного рабочего стола пользователя и верните сеанс в консоль
  3. Используйте TightVNC Viewer для входа в консоль экземпляра EC2, убедившись, что порт 5900 открыт для этого соединения
    • Щелкните правой кнопкой мыши на рабочем столе и выберите «Разрешение экрана».
    • Выберите «Расширенные настройки»
    • Выберите «Список всех режимов»
    • Выберите более высокое разрешение

Это позволило мне изменить свое разрешение, которое, как я полагал, решило бы мою реальную проблему, но не изменило. Мои тесты на селен, которые выполняются автоматически на моем сервере windows 2008 ec2 с помощью планировщика задач, все еще работают с небольшим разрешением. Даже после обновления с вышеупомянутым, они работают с меньшим разрешением. Да, окна настроены на максимальное разрешение в конфигурации селена.
Скопируйте и вставьте

1

Вы можете изменить разрешение экрана, изменив два параметра реестра. Эти два значения: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolutionгде GUID - это случайно сгенерированный GUID.

Вы можете указать любое значение XResolution и YResolution, если оно шестнадцатеричное.

Примечание. В случае использования ЭЛТ-монитора указание абсурдного разрешения может привести к его повреждению. В случае с ЖК-монитором ваш монитор может больше не отображать пользовательский интерфейс. Хороший способ изменить разрешение экрана - записать количество пикселей, которым вы хотите заполнить ширину экрана (это XResolution), и количество пикселей, которое вы хотите видеть на высоте экрана (YResolution). Калькулятор Windows (недоступный в Server Core, вам потребуется найти другой компьютер или аппаратный расширенный калькулятор) предлагает простой способ преобразования десятичных сумм в шестнадцатеричные суммы. Затем вы можете использовать эти значения для изменения соответствующих значений реестра. Перезапуск сделает ваше предпочтительное разрешение экрана реальностью.

Глубина цвета, используемая на вашем мониторе, фиксируется в следующем значении реестра: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPelВ моем окне это шестнадцатеричное значение было установлено в 0x00000008 (8), что означало, что мой экран использовал 8-битную глубину цвета. (256 цветов) Изменение его на 16 бит (0x00000010) покажет 65536 цветов (высокие цвета). Обычно доступны следующие значения: 24 бита (0x00000018) и 32 бита (0x00000020).

Источник


У меня нет DefaultSettings. * Ключи разрешения в любом из GUID.0000. Я думаю, это потому, что он имеет только виртуальные устройства. Могу ли я добавить этот ключ к каждому из них? Будет ли это работать?
Джоэл

@Joel: я сомневаюсь в этом. Нет ли вообще ветки «Видео»? У меня есть экземпляр Server Core 2008 R2 на EC2, поэтому я посмотрю его сегодня вечером.
paradroid

Да, я так не думаю. Думаю, я все равно спрошу. Я буду продолжать искать решения. Дайте мне знать, если найдете что-нибудь. Спасибо.
Джоэл

У меня также нет DefaultSettings. * В моем реестре. Я даже не мог попробовать это решение. Похоже, это может помочь некоторым, но не всем.
Скопируйте и вставьте

1

Я смог заставить это работать, используя комбинацию ответа @ kenny-trytek выше и настройку автоматического входа в систему.

Я думаю, что разрешение VNC устанавливается только для текущего пользователя, поэтому настройка автоматического входа гарантирует, что у этого пользователя открытая сессия.

Настройка автоматического входа в систему https://support.microsoft.com/en-us/kb/324737

Затем в папке «Запуск пользователей» укажите ярлык или файл bat, чтобы запустить процесс узла селена.


1
Пожалуйста, процитируйте основные части ответа по ссылочной ссылке (ссылкам), так как ответ может стать недействительным, если связанные страницы изменятся.
ДэвидПостилл

1

Я перепробовал все самое самое все выше и не получилось. Нашел решение, уникальное для моей ситуации: простое использование Windows Power-Shell.

написал сценарий Power-Shell

Set-DisplayResolution -Width 1920 -Height 1080 -Force

Назовите это resolution.ps1

сохранено в C: \ myTestFolder

и запустить его из командной строки, как показано ниже ..... (мои сценарии управляются пакетными файлами)

WindowsPowerShell\v1.0\powershell.exe C:\myTestFolder\resolution.ps1

0

Вот как я устанавливаю разрешение экрана без головы в AWS Windows, используя RDP:

  • создать нового пользователя с именем rdp_local
  • создать сценарий запуска для RDP в указанной учетной записи пользователя (например, селен) с указанным разрешением
  • добавить правило брандмауэра, чтобы открыть порт RDP 3389
  • настроить автоматический вход для входа в систему как rdp_local при перезагрузке

Обратите внимание, что для автоматического входа требуется имя пользователя и пароль, а пароль хранится в незашифрованном виде в реестре Windows HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon.

Протестировано на Amazon Windows Server 2012 R2 AMI.

Вот поваренная книга шеф-повара, которая делает вышеупомянутое: https://github.com/dhoer/chef-windows_screenresolution


ОБНОВЛЕНИЕ: Я бы рекомендовал использовать github.com/dhoer/choco-screen-resolution#screen-resolution, чтобы установить разрешение экрана на компьютерах с ОС Windows, используемых для тестирования селена. Для установки не требуется никаких драйверов, а автоматический вход в систему безопасен (без паролей в текстовом виде)
Деннис
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.