3

Я использую Monitor Profile Switcher, чтобы безболезненно переключаться на выход видеокарты для моего проектора, нажимая .lnk.

Теперь я хочу еще больше автоматизировать это и выполнить Monitor Profile Switcher с помощью SSH. Но, к моему великому сожалению, даже версия командной строки работает только тогда, когда Windows "думает", что она выполняется в реальном сеансе (т.е. с монитором), а не в виртуальном.

Оно работает:

  • когда я открываю cmd.exe локально и выполняю MonitorSwitcher.exe -load:Projector.xml ,
  • когда я делаю это на том же сеансе через TightVNC

но это не будет работать, когда

  • выполняется через сессию SSH cmd
  • или в окне cmd.exe в сеансе удаленного рабочего стола.

Просто ничего не происходит.

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

Любая помощь приветствуется.

1 ответ1

1

Поэтому после долгих исследований и экспериментов я нашел способ заставить MonitorSwitcher работать через SSH.

Вам понадобится PsExec, доступный по адресу https://technet.microsoft.com/en-us/sysinternals/bb897553

PsExec64.exe -u Username -p Password -i 1 C:\Path\To\MonitorSwitcher.exe -load:C:\Path\To\Layoutconfig.xml

Обратите внимание, что это работает только тогда, когда пользователь вошел в систему на "физической" консоли, т.е. экран блокировки не активен. Если вы хотите сначала разблокировать экран от ssh, вам нужно выполнить

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "$sessionid=((quser $env:USERNAME | select -Skip 1) -split '\s+')[2]; tscon $sessionid /dest:console" 2> UnlockErrors.log 

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .