Làm cách nào để thay đổi độ phân giải của Máy Windows Amazon EC2?


9

(Tôi đã tranh luận giữa việc đăng bài này ở đây, ServerFault và StackOverFlow. Giải quyết vấn đề này. Hy vọng rằng nó ở đúng nơi.)

Chúng tôi chạy bộ thử nghiệm giao diện người dùng của mình bằng Selenium Grid 2 với máy Windows Amazon EC2 (được bắt đầu bằng cách sử dụng API CloudFormation của Amazon). Câu hỏi của tôi là, làm thế nào để tôi thay đổi độ phân giải của máy đó?

Nếu tôi điều khiển từ xa, tôi có thể chỉ định độ phân giải bằng Remote Desktop. Nhưng rõ ràng điều đó không thay đổi vĩnh viễn độ phân giải. Khi chúng tôi chạy thử nghiệm, độ phân giải quá nhỏ đến mức trình duyệt sẽ kết hợp các yếu tố lại với nhau và khiến các thử nghiệm thất bại.

Có ý kiến ​​gì không? Có thứ gì tôi có thể đặt trong công thức CloudFormation không? Có điều gì tôi có thể làm với hình ảnh trước khi tạo AMI không?

Ảnh chụp màn hình của Trình quản lý thiết bị

Cảm ơn.


1
Hấp dẫn. Nó phải là một ví dụ tiêu chuẩn mà tôi tưởng tượng, vì vậy không có card đồ họa CUDA nào được gán cho thể hiện. Vì vậy, bạn đang làm việc với một card đồ họa ảo tiêu chuẩn. Nó trông như thế nào trong trình quản lý thiết bị? Bạn có thể gửi ảnh chụp màn hình? Bạn có thể có thể buộc nó cao hơn bằng cách truy cập vào bảng điều khiển:mstsc.exe /console
Paul

@Paul, tôi đã thêm một ảnh chụp màn hình. Đây là một ví dụ tiêu chuẩn. Máy chủ Windows R2. Cảm ơn.
Joel

@Joel, bạn đã bao giờ giải quyết điều này? Tôi đã cố gắng tìm cách để làm điều này trong nhiều ngày, bao gồm cả việc sử dụng các câu trả lời dưới đây, nhưng không có may mắn cho đến nay. Khi khởi động lại hoặc tạo từ AMI (ngay cả những câu trả lời đã được áp dụng cho chúng), chúng vẫn bắt đầu ở 1024x768.
Sean

Câu trả lời:


4

Tuyên bố miễn trừ trách nhiệm: TightVNC không an toàn, vì vậy nếu bảo mật là một vấn đề, bạn có thể cần tìm một cách tiếp cận khác. Toàn bộ quá trình sẽ chỉ mất vài phút, do đó lỗ hổng bảo mật là nhỏ, nhưng dù sao cũng có.

  1. Cài đặt máy chủ TightVNC trên phiên bản EC2 để bạn có thể đăng nhập vào bảng điều khiển
  2. Ngắt kết nối tất cả các phiên máy tính từ xa của người dùng và đưa phiên trở lại bàn điều khiển
  3. Sử dụng Trình xem chặt chẽ để đăng nhập vào bảng điều khiển EC2, đảm bảo cổng 5900 được mở cho kết nối đó
    • Nhấp chuột phải vào màn hình nền và chọn "Độ phân giải màn hình"
    • Chọn "Cài đặt nâng cao"
    • Chọn "Liệt kê tất cả các chế độ"
    • Chọn độ phân giải cao hơn

Điều này đã cho phép tôi thay đổi độ phân giải của mình, điều mà tôi tin rằng sẽ khắc phục vấn đề thực sự của mình, tuy nhiên nó đã không làm được. Các thử nghiệm selen của tôi đang chạy tự động trên máy chủ windows 2008 ec2 của tôi thông qua bộ lập lịch tác vụ vẫn đang chạy ở độ phân giải nhỏ. Ngay cả sau khi cập nhật với những điều trên, chúng vẫn chạy ở độ phân giải nhỏ hơn. Có, các cửa sổ được đặt để tối đa hóa độ phân giải trong cấu hình selen.
Sao chép và dán

1

Bạn có thể thay đổi độ phân giải màn hình bằng cách sửa đổi hai giá trị đăng ký. Hai giá trị này là: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.XResolution HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.YResolutionTrong đó GUID là GUID được tạo ngẫu nhiên.

Bạn thực sự có thể chỉ định bất kỳ giá trị XResolution và YResolution nào miễn là chúng là thập lục phân.

Lưu ý: Trong trường hợp màn hình CRT chỉ định độ phân giải vô lý có thể làm hỏng màn hình của bạn. Trong trường hợp màn hình LCD, màn hình của bạn có thể không hiển thị bất kỳ giao diện người dùng nào nữa. Một cách tốt để thay đổi độ phân giải Màn hình của bạn là ghi số lượng pixel bạn muốn lấp đầy chiều rộng màn hình của bạn (đây là XResolution) và lượng pixel bạn muốn trên chiều cao màn hình của bạn (YResolution). Máy tính Windows (không có sẵn trong Server Core, bạn sẽ phải tìm một máy tính khác hoặc máy tính nâng cao phần cứng) cung cấp một cách dễ dàng để chuyển đổi số thập phân thành số thập lục phân. Sau đó, bạn có thể sử dụng các giá trị này để sửa đổi các giá trị đăng ký tương ứng. Một khởi động lại sẽ làm cho độ phân giải màn hình ưa thích của bạn đáp ứng thực tế.

Độ sâu màu được sử dụng trên màn hình của bạn được ghi lại trong giá trị đăng ký sau: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Video\GUID\0000\DefaultSettings.BitsPerPelTrên hộp của tôi, giá trị thập lục phân này được đặt thành 0x00000008 (8) có nghĩa là màn hình của tôi sử dụng độ sâu màu 8 bit. (256 màu) Thay đổi thành 16 bit (0x00000010) sẽ hiển thị 65536 màu (Màu cao) Các giá trị khác thường có sẵn là 24 bit (0x00000018) và 32 bit (0x00000020).

Nguồn


Tôi không có Cài đặt mặc định. * Các phím phân giải trong bất kỳ GUID.0000 nào. Tôi nghĩ đó là vì nó chỉ có thiết bị ảo. Tôi có thể thêm khóa đó cho mỗi người không? Liệu điều đó có hiệu quả?
Joel

@Joel: Tôi nghi ngờ điều đó. Không có chi nhánh 'Video nào cả? Tôi có một phiên bản Server Core 2008 R2 trên EC2, vì vậy tôi sẽ xem xét nó vào tối nay.
paradroid

Vâng, không nghĩ vậy. Tôi nghĩ dù sao tôi cũng sẽ hỏi. Tôi sẽ tiếp tục tìm kiếm giải pháp. Hãy cho tôi biết nếu bạn tìm thấy bất cứ điều gì. Cảm ơn.
Joel

Tôi cũng không có DefaultS Settings. * Trong sổ đăng ký của mình. Tôi thậm chí không thể thử giải pháp này. Có vẻ như nó có thể giúp một số, chỉ là không phải tất cả.
Sao chép và dán

1

Tôi đã có thể làm việc này bằng cách sử dụng kết hợp câu trả lời của @ kenny-trytek ở trên và thiết lập đăng nhập tự động.

Tôi nghĩ rằng độ phân giải VNC chỉ được đặt cho người dùng hiện tại, vì vậy việc thiết lập đăng nhập tự động đảm bảo rằng người dùng này có phiên mở.

Thiết lập đăng nhập tự động https://support.microsoft.com/en-us/kb/324737

Tiếp theo, trong thư mục Start Up của người dùng cung cấp một phím tắt hoặc tệp bat để khởi động quá trình nút selen.


1
Vui lòng trích dẫn các phần thiết yếu của câu trả lời từ (các) liên kết tham chiếu, vì câu trả lời có thể trở nên không hợp lệ nếu (các) trang được liên kết thay đổi.
DavidPostill

1

Tôi đã thử tất cả hầu hết tất cả ở trên và thất bại. Tìm thấy một giải pháp duy nhất cho tình huống của tôi rất đơn giản .. sử dụng windows power-shell.

đã viết kịch bản shell-shell

Set-DisplayResolution -Width 1920 -Height 1080 -Force

đặt tên là độ phân giải.ps1

được lưu trong C: \ myTestFolder

và chạy nó từ dòng lệnh như bên dưới ..... (tập lệnh của tôi được điều khiển bởi các tệp bó)

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

0

Đây là cách tôi đặt độ phân giải màn hình không đầu trên AWS Windows bằng RDP:

  • tạo một người dùng mới gọi là rdp_local
  • tạo tập lệnh khởi động để RDP vào tài khoản người dùng được chỉ định (ví dụ: selen) ở độ phân giải được chỉ định
  • thêm quy tắc tường lửa để mở cổng RDP 3389
  • cấu hình tự động đăng nhập để đăng nhập với tên là ndp_local khi khởi động lại

Lưu ý rằng đăng nhập tự động yêu cầu tên người dùng và mật khẩu và mật khẩu được lưu trữ không được mã hóa trong sổ đăng ký HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon.

Đã thử nghiệm trên Amazon Windows Server 2012 R2 AMI.

Dưới đây là một cuốn sách nấu ăn đầu bếp thực hiện như trên: https://github.com/dhoer/chef-windows_screenresolution


CẬP NHẬT: Tôi khuyên bạn nên sử dụng github.com/dhoer/choco-screen-resolution#screen-resolution để đặt độ phân giải màn hình trên các máy Windows được sử dụng để kiểm tra selen. Nó không yêu cầu trình điều khiển để cài đặt và tự động đăng nhập là an toàn (không có mật khẩu trong văn bản thuần túy)
Dennis Hoer
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.