Вопрос или проблема
Настройка параметров масштабирования дисплея с помощью PowerShell
Я хочу настроить параметры масштабирования дисплея удаленной виртуальной машины через Citrix:
(изображение с другого компьютера)
но я получаю сообщение об ошибке:
ms-settings:display
Этот файл не связан с приложением, необходимым для выполнения этого действия. Пожалуйста, установите приложение или, если оно уже установлено, создайте ассоциацию на странице настроек приложений по умолчанию.
Вопрос: Есть ли способ настроить эти параметры в PowerShell без прав администратора?
Подобно ответу на вопрос Можно ли изменить масштаб дисплея через командную строку?, это эквивалент PowerShell, который, похоже, работает с Windows 10.
Пример ниже установит экран с 150% обратно на 100% в этом случае и работает. В зависимости от ваших начальных и конечных масштабов, вам нужно будет соответствующим образом настроить TAB #
и UP/DOWN #
.
Что касается ошибки при выполнении ms-settings:display
, возможно, передача этого в explorer, как указано ниже в PowerShell, сработает, в противном случае вот несколько ресурсов, которые помогут вам разобраться с этой проблемой.
- ms-settings:display Этот файл не связан с приложением
- Как исправить MS-SETTINGS DISPLAY Этот файл не связан с программой (Windows 10)
Обратите внимание, что если на компьютере, к которому вы подключаетесь через Citrix, установлены политики и это ограничено какой-либо конфигурацией политик, вам может быть запрещено изменять эти настройки. Я знаю, что RDP не позволяет изменять масштабирование через RDP, поэтому может быть аналогичная причина в Citrix, по которой это не может быть выполнено, и именно поэтому администраторы сервера могли установить такое ограничение, поэтому стоит спросить их об этом тоже.
PowerShell
explorer ms-settings:display;
Start-Sleep -Seconds 2;
$WshShell = New-Object -ComObject WScript.Shell;
Start-Sleep -Milliseconds 500;
$WshShell.SendKeys("{TAB 2}{UP 5}");
Start-Sleep -Milliseconds 500;
$WshShell.SendKeys("%{F4}");
Поддерживающие ресурсы
Версия ниже:
- выбирает 1 из моих 2 мониторов
- обновлена до текущого Windows 11.
- просто вводит процент масштабирования (в примере ниже я установил масштаб на 125%)
- добавляет некоторые пояснения о том, что делает каждая строка.
# Обратите внимание, что количество табуляций может варьироваться в зависимости от версии Windows.
explorer ms-settings:display; # открыть настройки дисплея
Start-Sleep -Seconds 1; # подождать секунду перед открытием настроек дисплея. Вам может понадобиться больше или меньше секунд в зависимости от скорости вашего компьютера.
$WshShell = New-Object -ComObject WScript.Shell;
Start-Sleep -Milliseconds 500;
$WshShell.SendKeys("{TAB 4}{ENTER}"); # 4 табуляции для выбора дисплея. ENTER для выбора нужного монитора (у меня 2)
Start-Sleep -Milliseconds 500;
$WshShell.SendKeys("{TAB 14}125"); # 14 табуляций для ввода поля Масштаб. Введите 125, чтобы установить его на 125%.
Start-Sleep -Milliseconds 500;
$WshShell.SendKeys("%{F4}");
Ответ или решение
Для изменения настроек масштабирования экрана удаленной виртуальной машины через Citrix с использованием PowerShell, необходимо выполнить последовательность команд. Прежде всего, обратите внимание, что вам могут потребоваться определенные права доступа, так как некоторые изменения могут быть заблокированы политиками администратора.
Решение через PowerShell
Следующий код позволяет открыть настройки дисплея и изменить масштабирование. Заметьте, что settings для масштабирования в Windows могут зависеть от версии вашей ОС, поэтому вам, возможно, потребуется отрегулировать количество нажатий клавиш (TAB) для навигации.
# Открытие настроек дисплея
explorer ms-settings:display;
Start-Sleep -Seconds 1; # ожидание открытия настроек дисплея
$WshShell = New-Object -ComObject WScript.Shell;
Start-Sleep -Milliseconds 500;
# Навигация к нужному дисплею (например, если у вас два монитора)
$WshShell.SendKeys("{TAB 4}{ENTER}"); # 4 нажатия TAB для выбора дисплея и ENTER для подтверждения
Start-Sleep -Milliseconds 500;
# Установка значения масштаба (например, установка на 125%)
$WshShell.SendKeys("{TAB 14}125"); # 14 нажатий TAB для перехода к полю масштабирования, затем вводим 125
Start-Sleep -Milliseconds 500;
# Закрытие окна настроек
$WshShell.SendKeys("%{F4}");
Объяснение кода:
- Открытие настроек дисплея:
explorer ms-settings:display;
– эта команда открывает окно настроек дисплея. - Ожидание:
Start-Sleep -Seconds 1;
– даёт время системе на загрузку окна. - Создание объекта WScript.Shell: Это необходимо для имитации нажатий клавиш.
- Навигация: Разные версии Windows могут требовать разное количество нажатий клавиш TAB для достижения нужного пункта. Возможно, вам потребуется протестировать, чтобы найти правильное количество.
- Ввод значения масштаба: После достижения поля ввода введите нужный процент масштабирования (например, 125).
- Закрытие окна: Команда
SendKeys("%{F4}")
закрывает окно настроек.
Обратите внимание:
- Убедитесь, что Citrix не ограничивает ваши действия. В некоторых средах администраторы могут ограничить изменения, связанные с масштабирование экрана.
- Если используете Windows 11, может быть необходимость в других значениях TAB или в параметрах, чтобы адаптировать скрипт под новую версию.
Дополнительные ресурсы:
Для более глубокой проработки вы можете ознакомиться с документацией по следующим ссылкам:
Этот подход поможет вам изменить настройки масштабирования, однако результаты и возможности могут варьироваться в зависимости от политик безопасности и конфигурации системы.