Рейтинг:2

Как установить разрешение экрана VMWare VM в Windows с помощью Ansible

флаг be

Я пытаюсь развернуть виртуальную машину vSphere Windows через Ansible, и мне нужно установить определенное разрешение экрана (1024x768). Бег VMWareResolutionSet.exe работает локально в PowerShell с помощью следующей команды ( , должен быть экранирован с помощью ` в Powershell, чтобы избежать создания списка аргументов, а & необходим для запуска команд с пробелами в пути):

& "C:\Program Files\VMWare\VMware Tools\VMwareResolutionSet.exe" 0 1 `, 0 0 1024 768

Однако удаленный запуск этой команды с помощью Ansible win_command выдает только код возврата 1 без дальнейшего сообщения об ошибке. То же самое происходит при запуске команды напрямую с помощью pywinrm или при вызове PowerShell в качестве подоболочки. Насколько я могу судить, проблема заключается в том, что это не интерактивный экземпляр PowerShell. Тем не менее, установка стать истинным и be_method: руны не работало.

Как я могу установить разрешение экрана виртуальной машины через Ansible?

Рейтинг:1
флаг be

В конечном итоге мне не удалось заставить это работать удаленно через PowerShell, но я был возможность запускать это как запланированное задание, которое запускается сразу после регистрации:

- имя: Убедитесь, что пользователь может запускать запланированные задачи
  win_user_right:
    имя: "Себатчлогонрайт"
    действие: добавить
    пользователи:
      - "{{ ansible_user }}"

# Удаление и повторная регистрация заставят задачу запускаться каждый раз
- имя: Удалить задачу разрешения экрана, если она присутствует
  win_scheduled_task:
    имя: Сетскринрезолюшн
    состояние: отсутствует

- название: Создать задачу для установки разрешения экрана
  win_scheduled_task:
    имя: Сетскринрезолюшн
    описание: Установить разрешение экрана
    действия:
      - путь: C:\Program Files\VMWare\VMware Tools\VMwareResolutionSet.exe
        аргументы: "0 1 , 0 0 1024 768"
    триггеры:
      - тип: регистрация
    состояние: присутствует
    включено: правда

- имя: Дождитесь завершения запланированной задачи
  win_scheduled_task_stat:
    имя: Сетскринрезолюшн
  зарегистрироваться: task_stat
  пока: (task_stat.state определено и task_stat.state.status != "TASK_STATE_RUNNING") или (task_stat.task_exists == False)
  повторы: 5

вы можете настроить эту задачу на самоудаление, используя инструкции, приведенные в https://stackoverflow.com/questions/64006824/ansible-win-scheduled-task-how-to-start-a-task-immediately. Я все еще подозреваю, что есть способ сделать это с помощью win_command с правильной настройкой, но я не смог понять это.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.