Bagaimana cara mengubah resolusi Mesin Amazon EC2 Windows?

9

(Saya berdebat antara memposting ini di sini, ServerFault, dan StackOverFlow. Setuju untuk ini. Semoga ada di tempat yang tepat.)

Kami menjalankan rangkaian pengujian UI kami menggunakan Selenium Grid 2 dengan mesin Amazon EC2 Windows (yang dimulai dengan menggunakan API CloudFormation Amazon). Pertanyaan saya adalah, bagaimana cara mengubah resolusi mesin itu?

Jika saya jauh ke dalamnya, saya dapat menentukan resolusi menggunakan Remote Desktop. Tapi jelas itu tidak mengubah resolusi secara permanen. Saat kami menjalankan pengujian, resolusinya sangat kecil sehingga peramban menyatukan elemen-elemen dan menyebabkan pengujian gagal.

Ada ide? Apakah ada sesuatu yang bisa saya masukkan ke dalam resep CloudFormation? Apakah ada yang bisa saya lakukan untuk gambar sebelum membuat AMI?

Cuplikan layar Device Manager

Terima kasih.

Joel
sumber
1
Menarik. Itu pasti contoh standar yang saya bayangkan, jadi tidak ada kartu grafis CUDA yang ditugaskan ke instance. Jadi Anda bekerja dengan kartu grafis virtual standar. Seperti apa itu di manajer perangkat? Bisakah Anda memposting tangkapan layar? Anda mungkin bisa memaksanya lebih tinggi dengan rdp-ing ke konsol:mstsc.exe /console
Paul
@ Paul, saya menambahkan tangkapan layar. Ini adalah contoh standar. Windows Server R2. Terima kasih.
Joel
@ Joel, apakah Anda pernah menyelesaikan ini? Saya sudah mencoba menemukan cara untuk melakukan ini selama beberapa hari, termasuk menggunakan jawaban di bawah ini, tetapi sejauh ini tidak berhasil. Di reboot, atau kreasi dari AMI (bahkan yang sudah memiliki jawaban diterapkan pada mereka), mereka masih mulai di 1024x768.
Sean

Jawaban:

4

Penafian: TightVNC tidak aman, jadi jika keamanan merupakan masalah, Anda mungkin perlu menemukan pendekatan yang berbeda. Seluruh proses hanya akan memakan waktu beberapa menit, jadi lubang keamanannya kecil, tapi tetap saja ada.

  1. Instal TightVNC Server pada instance EC2 sehingga Anda dapat masuk ke konsol
  2. Putuskan sambungan semua sesi desktop jarak jauh pengguna dan kembalikan sesi ke konsol
  3. Gunakan TightVNC Viewer untuk masuk ke konsol instance EC2, memastikan port 5900 terbuka untuk koneksi itu
    • Klik kanan pada desktop dan pilih "Resolusi layar"
    • Pilih "Pengaturan lanjutan"
    • Pilih "Daftar Semua Mode"
    • Pilih resolusi yang lebih tinggi
Kenny Trytek
sumber
Ini memang memungkinkan saya untuk mengubah resolusi saya, yang saya percaya akan memperbaiki masalah saya yang sebenarnya, namun ternyata tidak. Tes selenium saya yang berjalan otomatis pada windows 2008 saya ec2 server melalui penjadwal tugas masih berjalan pada resolusi kecil. Bahkan setelah memperbarui dengan yang di atas, mereka berjalan pada resolusi yang lebih kecil. Ya, windows diatur untuk memaksimalkan resolusi dalam konfigurasi selenium.
Salin dan Tempel
1

Anda dapat mengubah resolusi layar dengan memodifikasi dua nilai registri. Kedua nilai ini adalah: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolutionDi mana GUID adalah GUID yang dibuat secara acak.

Anda benar-benar dapat menentukan nilai XResolution dan YResolution selama mereka hexadecimal.

Catatan: Jika monitor CRT menentukan resolusi yang absurd dapat merusak monitor Anda. Dalam hal monitor LCD, monitor Anda mungkin tidak lagi menampilkan antarmuka pengguna. Cara yang baik untuk mengubah resolusi Layar Anda adalah dengan menuliskan jumlah piksel yang Anda ingin isi dengan lebar layar Anda (ini adalah XResolution) dan jumlah piksel yang Anda inginkan pada ketinggian layar Anda (YResolution). Kalkulator Windows (tidak tersedia di Server Core, Anda harus menemukan komputer lain atau kalkulator perangkat keras tingkat lanjut) menawarkan cara mudah untuk mengkonversi jumlah desimal menjadi jumlah heksadesimal. Anda kemudian dapat menggunakan nilai-nilai ini untuk mengubah nilai registri yang sesuai. Restart akan membuat resolusi layar pilihan Anda memenuhi kenyataan.

Kedalaman warna yang digunakan pada monitor Anda ditangkap dalam nilai registri berikut: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPelPada kotak saya, nilai heksadesimal ini diatur ke 0x00000008 (8) yang berarti layar saya menggunakan kedalaman warna 8 bit. (256 warna) Mengubahnya menjadi 16 bit (0x00000010) akan menampilkan 65536 warna (Warna Tinggi) Nilai-nilai lain yang biasanya tersedia adalah 24 bit (0x00000018) dan 32 bit (0x00000020).

Sumber

paradroid
sumber
Saya tidak memiliki Pengaturan Default. * Kunci resolusi di salah satu GUID.0000. Saya pikir itu karena hanya memiliki perangkat virtual. Bisakah saya menambahkan kunci itu ke masing-masing? Apakah itu akan berhasil?
Joel
@ Joel: Saya ragu. Apakah tidak ada cabang 'Video' sama sekali? Saya memiliki contoh Server Core 2008 R2 di EC2, jadi saya akan melihatnya malam ini.
paradroid
Ya, tidak mengira begitu. Kupikir aku akan bertanya. Saya akan terus mencari solusi. Beri tahu saya jika Anda menemukan sesuatu. Terima kasih.
Joel
Saya juga tidak memiliki DefaultSettings. * Di registri saya. Saya bahkan tidak bisa mencoba solusi ini. Tampaknya itu bisa membantu beberapa orang, hanya saja tidak semua.
Salin dan Tempel
1

Saya dapat menjalankan ini menggunakan kombinasi jawaban @ kenny-trytek di atas dan mengatur login otomatis.

Saya pikir resolusi VNC hanya akan ditetapkan untuk pengguna saat ini, jadi pengaturan masuk otomatis memastikan bahwa pengguna ini memiliki sesi terbuka.

Siapkan login otomatis https://support.microsoft.com/en-us/kb/324737

Selanjutnya, di folder Start Up pengguna memberikan shortcut atau file bat untuk memulai proses selenium node.

porto88
sumber
1
Silakan kutip bagian-bagian penting dari jawaban dari tautan referensi, karena jawabannya bisa menjadi tidak valid jika halaman yang tertaut berubah.
DavidPostill
1

Saya mencoba semuanya di atas dan gagal. Menemukan solusi unik untuk situasi saya yang sederhana ..menggunakan windows power-shell.

menulis skrip power-shell

Set-DisplayResolution -Width 1920 -Height 1080 -Force

beri nama ini resolution.ps1

disimpan di C: \ myTestFolder

dan jalankan dari command line seperti di bawah ini ..... (skrip saya digerakkan oleh file batch)

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

Inilah cara saya mengatur resolusi layar tanpa kepala di AWS Windows menggunakan RDP:

  • buat pengguna baru bernama rdp_local
  • buat skrip startup untuk RDP menjadi akun pengguna yang ditentukan (misalnya selenium) pada resolusi yang ditentukan
  • tambahkan aturan firewall untuk membuka port RDP 3389
  • konfigurasikan masuk otomatis untuk masuk sebagai rdp_local saat reboot

Perhatikan bahwa masuk otomatis memerlukan nama pengguna dan kata sandi dan kata sandi disimpan tidak terenkripsi di bawah jendela registri HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon.

Diuji di Amazon Windows Server 2012 R2 AMI.

Berikut ini adalah buku masak Chef yang melakukan hal di atas: https://github.com/dhoer/chef-windows_screenresolution

Dennis Hoer
sumber
UPDATE: Saya akan merekomendasikan menggunakan github.com/dhoer/choco-screen-resolution#screen-resolution untuk mengatur resolusi layar pada mesin windows yang digunakan untuk pengujian selenium. Tidak memerlukan driver untuk menginstal dan masuk otomatis aman (tidak ada kata sandi dalam teks biasa)
Dennis Hoer