Điểm:2

Cách đặt độ phân giải màn hình VMWare VM trên Windows bằng Ansible

lá cờ be

Tôi đang cố gắng triển khai vSphere Windows VM qua Ansible và cần đặt độ phân giải màn hình cụ thể (1024x768). Đang chạy VMWareResolutionSet.exe hoạt động cục bộ trong PowerShell bằng lệnh sau (phần , cần được thoát bằng ` trong Powershell để tránh biến các đối số thành danh sách và & là cần thiết để chạy các lệnh có khoảng trắng trong đường dẫn của chúng):

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

Tuy nhiên, chạy lệnh này từ xa với Ansible's win_command chỉ mang lại một mã trả lại của 1 không có thêm thông báo lỗi. Hành vi tương tự xảy ra khi chạy lệnh trực tiếp với pywinrm hoặc khi gọi PowerShell dưới dạng lớp con. Theo như tôi có thể nói, vấn đề nằm ở chỗ đây không phải là một phiên bản PowerShell tương tác. Tuy nhiên, thiết lập trở thành sự thậttrở thành_method: runas đã không làm việc.

Làm cách nào tôi có thể đặt độ phân giải màn hình VM qua Ansible?

Điểm:1
lá cờ be

Cuối cùng, tôi không thể chạy cái này từ xa qua PowerShell, nhưng tôi có thể chạy tác vụ này dưới dạng tác vụ theo lịch trình chạy ngay khi được đăng ký:

- tên: Đảm bảo rằng người dùng có thể chạy các tác vụ theo lịch trình
  win_user_right:
    tên: "SeBatchLogonRight"
    hành động: thêm
    người dùng:
      - "{{ ansible_user }}"

# Xóa và đăng ký lại sẽ buộc tác vụ phải chạy mọi lúc
- tên: Xóa tác vụ phân giải màn hình nếu có
  win_scheduled_task:
    tên: SetScreenResolution
    trạng thái: vắng mặt

- name: Tạo tác vụ đặt độ phân giải màn hình
  win_scheduled_task:
    tên: SetScreenResolution
    Mô tả: Đặt độ phân giải màn hình
    hành động:
      - đường dẫn: C:\Program Files\VMWare\VMware Tools\VMwareResolutionSet.exe
        đối số: "0 1 , 0 0 1024 768"
    gây nên:
      - loại: đăng ký
    trạng thái: hiện tại
    đã bật: đúng

- tên: Đợi tác vụ đã lên lịch hoàn thành
  win_scheduled_task_stat:
    tên: SetScreenResolution
  đăng ký: task_stat
  cho đến khi: (task_stat.state được xác định và task_stat.state.status != "TASK_STATE_RUNNING") hoặc (task_stat.task_exists == False)
  thử lại: 5

bạn có thể định cấu hình tác vụ này để tự xóa bằng cách sử dụng các hướng dẫn có trong https://stackoverflow.com/questions/64006824/ansible-win-scheduled-task-how-to-start-a-task-immediately. Tôi vẫn nghi ngờ có một cách để làm điều này với win_command với cài đặt phù hợp, nhưng tôi không thể hiểu được.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.