ปรับใช้ซอฟต์แวร์และการตั้งค่าอัตโนมัติด้วย WinGet Configure (DSC)

/th/images/winget-find-app-id-name.png

นอกเหนือจากการติดตั้งแพ็คเกจแอพจากพื้นที่เก็บข้อมูลแล้ว คุณยังสามารถใช้ตัวจัดการแพ็คเกจ WinGet สำหรับการกำหนดค่าสภาพแวดล้อม Windows ที่ประกาศได้ แนวคิดก็คือผู้ดูแลระบบจะสร้างไฟล์ YAML ที่เปิดเผยซึ่งอธิบายสถานะที่ต้องการของคอมพิวเตอร์ รวมถึงการตั้งค่า Windows และซอฟต์แวร์ที่จำเป็น จากนั้น WinGet จะใช้ PowerShell Desired State Configuration (DSC) เพื่อกำหนดค่า Windows ให้เป็นสถานะที่ระบุที่กำหนดไว้ในไฟล์ YAML โดยอัตโนมัติ

WinGet รองรับการจัดการการกำหนดค่าคอมพิวเตอร์ผ่าน DSC โดยเริ่มตั้งแต่เวอร์ชัน 1.6.2631 (เปิดตัวในปี 2023)

คำสั่ง winget กำหนดค่า ใช้ PowerShell Desired State Configuration (DSC) 3.0 รวมถึงสถาปัตยกรรม Microsoft DSC 3 ที่ใหม่กว่า เพื่อกำหนดค่า Windows ให้เป็นสถานะที่ต้องการที่กำหนดไว้ในไฟล์การกำหนดค่าโดยอัตโนมัติ ไฟล์การกำหนดค่า YAML อธิบายสถานะของระบบที่ต้องการอย่างชัดเจน รวมถึงการติดตั้งหรือการลบโปรแกรมพร้อมเวอร์ชัน คุณสมบัติและบทบาทของ Windows ที่จะเพิ่มหรือลบ และการตั้งค่า Windows และแอปพลิเคชันที่จำเป็น การใช้ไฟล์ YAML นี้จะทำให้การปรับใช้สภาพแวดล้อมบนเวิร์กสเตชันหรือเซิร์ฟเวอร์ Windows เป็นแบบอัตโนมัติ

ตอนนี้เรามาดูไฟล์การกำหนดค่า YAML อย่างง่ายสำหรับ Winget กัน การกำหนดค่าตัวอย่างของฉันใช้ในการติดตั้งแอปหลายตัว (Firefox, Notepad++ และ PowerToys) และลบ 7-Zip หากติดตั้งไว้ นอกจากนี้ยังทำการเปลี่ยนแปลงรีจิสทรี (เปิดใช้งานการสำรองข้อมูลรีจิสทรีของ Windows โดยใช้ตัวเลือก EnablePeriodicBackup )

แอปใน Microsoft Store สามารถติดตั้ง/ลบได้ด้วยรหัสแอป ตัวอย่างเช่น หากต้องการรับ ID แอป PowerToys ให้เรียกใช้:

winget show powertoys-s msstore

/th/images/winget-find-app-id-name.png.webp

คำสั่งเพื่อค้นหาชื่อแพ็คเกจแอปใน Winget:

ชื่อแอปค้นหา winget

หรือระหว่างแอพที่ติดตั้ง:

รายการวิงเก็ต

คุณสามารถค้นหาตัวอย่างของไฟล์ YAML ดังกล่าวได้ในที่เก็บ GitHub ของเรา https://github.com/maxbakhub/winposh/blob/main/DSC/winget_configure_dsc_sample_win11.yaml

/th/images/winget-configure-dsc-sample-yaml-file.png.webp

ตอนนี้เรามาลองใช้การกำหนดค่าจากไฟล์ YAML นี้ผ่านการกำหนดค่า winget ขั้นแรก ให้เปิดใช้งานการสนับสนุน DSC ใน WinGet:

กำหนดค่า winget - เปิดใช้งาน

/th/images/winget-configure-enable-dsc.png.webp

ก่อนที่จะใช้การกำหนดค่า DSC ขอแนะนำให้ตรวจสอบไวยากรณ์ของไฟล์ YAML

กำหนดค่า winget ตรวจสอบความถูกต้อง winget\_configure\_dsc\_sample\_win11.yaml

เช่นเดียวกับ Python ไฟล์ YAML ใช้การเยื้องเพื่อกำหนดโครงสร้าง พวกเขาอาศัยช่องว่างมากกว่าแท็บเพื่อแสดงบล็อกข้อมูลที่ซ้อนกัน

ตอนนี้ ใช้การกำหนดค่าจากไฟล์ YAML กับคอมพิวเตอร์

กำหนดค่า winget - ไฟล์ winget\_configure\_dsc\_sample\_win11.yaml - ยอมรับข้อตกลงการกำหนดค่า

/th/images/winget-configure-desired-state-configuration-log.png.webp

WinGet อ่านการตั้งค่าจากไฟล์ YAML ติดตั้ง/ลบแอพที่อธิบายไว้ และใช้การตั้งค่า Windows ที่ระบุ (กระบวนการ ConfigurationRemotingServer.exe จะแยกวิเคราะห์ไฟล์ YAML และใช้การตั้งค่า) ดังนั้นด้วยคำสั่งเดียว คุณจะได้รับสภาพแวดล้อม Windows ที่กำหนดค่าอย่างสมบูรณ์ บันทึกโดยละเอียดของการตั้งค่า DSC ที่ใช้จะปรากฏบนหน้าจอ

ดำเนินการทดลองเพื่อดูว่าการกำหนดค่าปัจจุบันของคอมพิวเตอร์ของคุณตรงกับไฟล์ YAML อย่างไร

winget กำหนดค่า test-f winget\_configure\_dsc\_sample\_win11.yaml--ยอมรับ-configuration-ข้อตกลง

สำหรับรายการทั้งหมดที่ไม่ตรงกับการกำหนดค่าที่ต้องการ คำสั่งจะกลับมา:


System is not in the described configuration state.

/th/images/winget-system-is-not-in-the-described-configurati.png.webp

เมื่อคุณใช้ไฟล์การกำหนดค่า YAML อีกครั้ง Winget Configure จะใช้การเปลี่ยนแปลงที่แตกต่างจากการกำหนดค่าที่ต้องการเท่านั้น

securityContext: ยกระดับ คำสั่งหมายความว่าเพียงครั้งเดียว

คำสั่งหมายความว่าจำเป็นต้องมีการแจ้งการยกระดับการควบคุมบัญชีผู้ใช้ (UAC) เพียงครั้งเดียวเพื่อใช้การตั้งค่าการกำหนดค่าระบบบางอย่าง

ด้วย WinGet คุณสามารถระบุไฟล์การกำหนดค่า YAML ที่อยู่บนเว็บเพจภายนอกเป็นแหล่งที่มาสำหรับการกำหนดค่าได้ (ซึ่งช่วยให้ปรับใช้การกำหนดค่าสถานะที่ต้องการได้โดยอัตโนมัติผ่าน GitHub/GitLab)

การกำหนดค่า winget - ยอมรับการกำหนดค่าข้อตกลง - ปิดการใช้งานการโต้ตอบ -f https://raw.githubusercontent.com/maxbakhub/winposh/refs/heads/main/DSC/winget\_configure\_dsc\_sample\_win11.yaml

/th/images/winget-configure-with-yaml-in-url.png.webp

WinGet ช่วยให้ผู้ดูแลระบบสามารถกำหนดค่าเครื่อง Windows ให้เป็นสถานะเฉพาะโดยใช้ไฟล์ YAML ที่ประกาศ เพื่อให้มั่นใจถึงการกำหนดค่าเดิมและสนับสนุนแนวทาง Infrastructure as Code (IaC) ในการจัดการสภาพแวดล้อมของ Windows WinGet พร้อม DSC ช่วยให้คุณใช้ Ansible-playbook ที่เทียบเท่ากับอุปกรณ์ Windows ช่วยให้สามารถจัดการการกำหนดค่าอัตโนมัติที่ประกาศได้

*️⃣ ลิงค์ที่มา:

ตัวจัดการแพ็คเกจ WinGet เปิดใช้งานการสำรองข้อมูลรีจิสทรีของ Windows https://github.com/maxbakhub/winposh/blob/main/DSC/winget_configure_dsc_sample_win11.yaml , , พร้อมท์การยกระดับการควบคุมบัญชีผู้ใช้ (UAC)