Удаленный сеанс Powershell, не удается установить разрешение экрана?

Я уже некоторое время пытаюсь установить разрешение экрана моей удаленной машины через удаленный сеанс Powershell. Я могу получить разрешение с помощью командлета Get-DisplayResolution и получить следующее.

PS C:\> Enter-PSSession -Session $rs
[vm.company.com]: PS C:\Users\username\Documents> cd \
[vm.company.com]: PS C:\> Get-DisplayResolution
1024x768

[vm.company.com]: PS C:\> Set-DisplayResolution -Width 1440 -Height 900 -Force
setres will now attempt to apply the following display settings:   

  Width:          1440                       
  Height:         900

The settings passed in could not be applied to the graphics device.

[vm.company.com]: PS C:\> Set-DisplayResolution -Width 1024 -Height 768 -Force
setres will now attempt to apply the following display settings:

  Width:          1024
  Height:         768

The settings passed in could not be applied to the graphics device.

[vm.company.com]: PS C:\>

Это очень расстраивает, потому что я даже не могу изменить разрешение экрана на то, на которое оно установлено в настоящее время, потому что я продолжаю получать сообщение об ошибке.

Переданные настройки не могут быть применены к графическому устройству.

Я попробовал это на своей машине локально, и, похоже, все работает нормально. Вот версия Powershell, которая отображается на удаленном компьютере.

[vm.company.com]: PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      3.0
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.34209
BuildVersion                   6.2.9200.17065
PSCompatibleVersions           {1.0, 2.0, 3.0}
PSRemotingProtocolVersion      2.2


[vm.company.com]: PS C:\>

Кто-нибудь знает способ обойти эту проблему? Заранее спасибо.


person dacke.geo    schedule 21.03.2016    source источник
comment
Упомянутая вами команда, вероятно, возвращает разрешение вашего сеанса, а не консоль, которая не поддерживает изменение (вероятно, разрешения вообще нет, и оно просто возвращает значение по умолчанию или разрешение, установленное в профиле использовать при входе в систему). Попробуйте изменить разрешение на консоли и посмотрите, отразится ли это на вашем сеансе.   -  person Deadly-Bagel    schedule 21.03.2016
comment
На самом деле вы не можете изменить разрешение в удаленном сеансе. Вы должны иметь возможность установить значения по умолчанию, но не разрешение активного сеанса графического интерфейса. Даже удаленный рабочий стол устанавливает разрешение при подключении, свойства дисплея отключены.   -  person Eris    schedule 21.03.2016
comment
@ Deadly-Bagel, как мне установить разрешение на консоли, как вы предложили? Это виртуальная машина, работающая на сервере vm-ware.   -  person dacke.geo    schedule 21.03.2016
comment
@Эрис, можешь рассказать мне об этом подробнее? Что вы имеете в виду под своим утверждением: › Вы должны иметь возможность установить значения по умолчанию, но не разрешение активного сеанса графического интерфейса. Я пытаюсь изменить разрешение экрана для целей End to Завершите тестирование с помощью транспортира. Я уверен, что я не могу быть первым человеком в мире, у которого есть эта конкретная проблема.   -  person dacke.geo    schedule 22.03.2016
comment
Я бы рекомендовал установить разрешение с помощью инструментов VMware, а не из окон. Если вы используете vmrun runProgramInGuest для запуска приложения в гостевой системе вместо удаленного сеанса powershell, оно должно делать то, что вам нужно. Я бы посоветовал спросить об этом на PowerUser или ServerFault, так как это скорее задача администратора, а не программирование.   -  person Eris    schedule 22.03.2016
comment
@Eris Спасибо, я понимаю, что на самом деле это не программирование, но я разработчик, отвечающий за настройку нашего сервера непрерывной интеграции (ci) для запуска этих сквозных тестов. Вот поэтому я и задал вопрос. Спасибо за информацию!   -  person dacke.geo    schedule 22.03.2016
comment
По-видимому, после долгих поисков я обнаружил, что не смогу изменить размер системного рабочего стола, к которому у меня есть доступ при использовании удаленного взаимодействия Powershell. Мне удалось обойти эту проблему с помощью сеанса Windows RDP, но я считаю, что это решение в лучшем случае некачественное. Это включало создание большого количества кода с использованием клиента удаленного рабочего стола и вызовов Win32 для имитации того, что мне нужно было сделать, чтобы запустить два конечных теста в разрешении, которое я хотел. В конечном итоге решение состоит в том, чтобы исправить сквозное тестирование и запустить программное обеспечение для разрешения экрана 1024 x 768.   -  person dacke.geo    schedule 23.03.2016


Ответы (1)


Хотя это не прямой ответ на вопрос, и в конечном итоге это не такое надежное и чистое решение, как мне бы хотелось. Я нашел обходной путь, который позволит мне выполнять сквозное тестирование на удаленной машине, которую можно запустить с нашего сервера CI. [Автоматизируйте сеансы удаленного рабочего стола]https://outofmemoryexception.wordpress.com/2016/03/29/automate-your-remote-desktop-sessions/ . Надеюсь, вы найдете его полезным и в своих сценариях. Я остаюсь открытым для лучших решений.

person dacke.geo    schedule 29.03.2016