Score:2

วิธีตั้งค่าความละเอียดหน้าจอ VMWare VM บน Windows โดยใช้ Ansible

ธง be

ฉันกำลังพยายามปรับใช้ vSphere Windows VM ผ่าน Ansible และจำเป็นต้องตั้งค่าความละเอียดหน้าจอเฉพาะ (1024x768) วิ่ง VMWareResolutionSet.exe ทำงานแบบโลคัลใน PowerShell ด้วยคำสั่งต่อไปนี้ (ไฟล์ , จำเป็นต้องหลบหนีด้วย ` ใน Powershell เพื่อหลีกเลี่ยงการทำให้อาร์กิวเมนต์เป็นรายการ และ & จำเป็นต้องเรียกใช้คำสั่งที่มีช่องว่างในเส้นทาง):

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

อย่างไรก็ตาม การเรียกใช้คำสั่งนี้จากระยะไกลด้วย Ansible's win_command ให้เฉพาะรหัสส่งคืนของ 1 โดยไม่มีข้อความแสดงข้อผิดพลาดอีก พฤติกรรมเดียวกันนี้เกิดขึ้นเมื่อรันคำสั่งโดยตรงกับ pywinrm หรือเมื่อเรียกใช้ PowerShell เป็นเชลล์ย่อย เท่าที่ฉันสามารถบอกได้ ปัญหาอยู่ที่นี่ไม่ใช่อินสแตนซ์ PowerShell แบบโต้ตอบ อย่างไรก็ตามการตั้งค่า กลายเป็น: จริง และ makes_method: รูน ไม่ทำงาน.

ฉันจะตั้งค่าความละเอียดหน้าจอ VM ผ่าน Ansible ได้อย่างไร

Score:1
ธง be

ในที่สุดฉันไม่สามารถทำให้สิ่งนี้ทำงานจากระยะไกลผ่าน PowerShell ได้ แต่ฉัน เคยเป็น สามารถเรียกใช้งานนี้เป็นงานที่กำหนดเวลาไว้ซึ่งทำงานทันทีที่ลงทะเบียน:

- ชื่อ: ตรวจสอบให้แน่ใจว่าผู้ใช้สามารถเรียกใช้งานตามกำหนดเวลาได้
  win_user_right:
    ชื่อ: "SeBatchLogonRight"
    การดำเนินการ: เพิ่ม
    ผู้ใช้:
      - "{{ ansible_user }}"

# การลบและการลงทะเบียนใหม่จะเป็นการบังคับให้งานทำงานทุกครั้ง
- ชื่อ: ลบงานความละเอียดหน้าจอถ้ามี
  win_scheduled_task:
    ชื่อ: SetScreenResolution
    สถานะ: ขาด

- ชื่อ: สร้างงานเพื่อตั้งค่าความละเอียดหน้าจอ
  win_scheduled_task:
    ชื่อ: SetScreenResolution
    คำอธิบาย: ตั้งค่าความละเอียดหน้าจอ
    การกระทำ:
      - เส้นทาง: C:\Program Files\VMWare\VMware Tools\VMwareResolutionSet.exe
        อาร์กิวเมนต์: "0 1 , 0 0 1024 768"
    ทริกเกอร์:
      - ประเภท: การลงทะเบียน
    สถานะ: ปัจจุบัน
    เปิดใช้งาน: จริง

- ชื่อ: รอให้งานที่กำหนดเวลาไว้เสร็จสิ้น
  win_scheduled_task_stat:
    ชื่อ: SetScreenResolution
  ลงทะเบียน: 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-ทันที. ฉันยังคงสงสัยว่ามีวิธีการทำเช่นนี้กับ win_command ด้วยการตั้งค่าที่เหมาะสม แต่ฉันคิดไม่ออก

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา