ใช้ WinGet และไฟล์ YAML เพื่อตั้งค่าพีซีของคุณอย่างมืออาชีพ

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

ไฟล์ WinGet และ YAML สำหรับการกำหนดค่าพีซี

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

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

WinGet คืออะไร และเหตุใดจึงมีประโยชน์มากในการทำงานอัตโนมัติบนพีซีของคุณ?

WinGet คือโปรแกรมจัดการแพ็กเกจอย่างเป็นทางการของ Microsoft สำหรับ Windows 10 และ Windows 11โปรแกรมนี้ทำงานผ่านทางบรรทัดคำสั่ง และช่วยให้คุณสามารถติดตั้ง อัปเดต กำหนดค่า และถอนการติดตั้งแอปพลิเคชันได้ในลักษณะที่คล้ายคลึงกับที่ทำใน GNU/Linux ด้วย apt, dnf หรือโปรแกรมที่คล้ายกัน แต่ผสานรวมเข้ากับระบบนิเวศของ Windows ได้อย่างสมบูรณ์แบบ

แทนที่จะเสียเวลาค้นหาตัวติดตั้งบนเว็บไซต์หลายร้อยแห่ง ดาวน์โหลดไฟล์ EXE หรือ MSI แล้วคลิก "ถัดไป ถัดไป ยอมรับ" คุณสามารถใช้ WinGet เพื่อเรียกใช้คำสั่งได้ เช่น winget install package-name จากนั้นระบบจะดาวน์โหลดโปรแกรมจากแหล่งที่เชื่อถือได้ ดำเนินการติดตั้งแบบเงียบ ๆ และลงทะเบียนแพ็กเกจเพื่อรับการอัปเดตในอนาคต

แหล่งซอฟต์แวร์หลักที่ WinGet ใช้ ได้แก่ Microsoft Store และคลังเก็บข้อมูลชุมชนที่โฮสต์อยู่บน GitHubโดยแต่ละแอปพลิเคชันจะถูกอธิบายด้วยไฟล์ YAML ที่ระบุวิธีการติดตั้ง เวอร์ชัน ค่าแฮชความสมบูรณ์ ฯลฯ นอกจากนี้ ยังสามารถเพิ่มที่เก็บข้อมูลส่วนตัว เช่น ที่เก็บสำหรับองค์กรของคุณ เพื่อแจกจ่ายซอฟต์แวร์ภายในองค์กรอย่างเป็นระบบได้อีกด้วย

ระบบนิเวศของ WinGet ทั้งหมดนั้นตั้งอยู่บนสามเสาหลัก:

  • La ปีกซีแอลไอ (คำสั่งที่คุณใช้ในเทอร์มินัล)
  • ลอส บริการที่ทำหน้าที่จัดเก็บและตรวจสอบความถูกต้องของแพ็กเกจ.
  • ลอส ไฟล์การกำหนดค่า YAML ซึ่งช่วยให้คุณสามารถกำหนดสถานะที่ต้องการของเครื่องทั้งหมดได้อย่างชัดเจน ไม่ใช่แค่เฉพาะแอปพลิเคชันแต่ละตัวเท่านั้น

Winget

คำสั่ง WinGet พื้นฐานสำหรับการจัดการแอปพลิเคชัน

ก่อนที่เราจะเจาะลึกลงไปในรายละเอียดทางเทคนิคของไฟล์การกำหนดค่า YAML เราควรทำความเข้าใจพื้นฐานเสียก่อน คำสั่ง WinGet พื้นฐานสำหรับการใช้งานในชีวิตประจำวันทุกอย่างสามารถจัดการได้ผ่าน PowerShell, Windows Terminal หรือพรอมต์คำสั่งแบบดั้งเดิม

ถ้าคุณเขียนเพียงแค่... Winget ในหน้าต่างคอนโซล คุณจะเห็นเวอร์ชันที่ติดตั้ง คำสั่งย่อยที่มีให้ใช้งาน และสรุปตัวเลือกต่างๆ จากนั้นคุณสามารถเริ่มทดลองใช้งานได้โดยไม่ต้องกังวล

ไปยัง ติดตั้งแอพ คุณใช้คำสั่งย่อย install ตัวอย่างเช่น หากต้องการติดตั้ง Visual Studio Code บนพีซีของคุณ คุณเพียงแค่ทำดังนี้:

winget install Microsoft.VisualStudioCode

ในกรณีนี้ Microsoft.VisualStudioCode คือตัวระบุแพ็กเกจที่ถูกต้อง ในที่เก็บ WinGet ในหลายกรณี คุณสามารถติดตั้งโดยใช้ชื่อตรงตามที่ปรากฏใน Store ได้เช่นกัน โดยใส่เครื่องหมายอัญประกาศหากมีช่องว่าง แต่การใช้ ID จะช่วยลดความกำกวมได้

ถ้าคุณต้องการ อัปเดตโปรแกรมของคุณคุณสามารถสั่งให้ WinGet ลองอัปโหลดทุกอย่างที่มันรู้จักได้โดยใช้คำสั่ง:

winget upgrade --all

หรือคุณอาจมุ่งเน้นไปที่แอปพลิเคชันเฉพาะเจาะจงก็ได้ เช่น:

winget upgrade Microsoft.VisualStudioCode

WinGet เวอร์ชันใหม่ๆ สามารถอัปเดตได้ไม่เพียงแต่สิ่งที่ตัวมันเองติดตั้งเท่านั้น แต่ยังรวมถึงแอปพลิเคชันที่ตรวจพบในระบบซึ่งมีไฟล์ manifest ที่เกี่ยวข้องอยู่ในไดเร็กทอรีต้นทางด้วย

ไปยัง ถอนการติดตั้งซอฟต์แวร์หลักการทำงานก็ง่ายเช่นกัน:

winget uninstall Microsoft.VisualStudioCode

การลบจะใช้งานได้ตราบใดที่ WinGet มีโปรแกรมนั้นอยู่ในแคตตาล็อก ไม่ว่าจะเป็นเพราะ WinGet ติดตั้งโปรแกรมนั้นเอง หรือเพราะ WinGet รู้จักโปรแกรมนั้นผ่านข้อมูลที่ลงทะเบียนไว้ในระบบ

เมื่อคุณต้องการค้นหาโปรแกรม คุณสามารถใช้ การค้นหาวิงเก็ตตัวอย่างเช่น หากต้องการดูว่ามีตัวเลือกใดบ้างในโปรแกรมจดบันทึก:

winget search notepad

คำสั่งนี้จะส่งคืนรายการที่มี ชื่อ, รหัสบรรจุภัณฑ์ และแหล่งกำเนิด (คลังเก็บข้อมูลชุมชน, ร้านค้า หรือคลังเก็บข้อมูลส่วนตัว) และรหัสประจำตัวนั้นคือรหัสที่คุณควรใช้ในการติดตั้งหรืออัปเกรดเพื่อความปลอดภัย

หากคุณต้องการทราบว่าซอฟต์แวร์ใดควบคุม WinGet บนคอมพิวเตอร์ของคุณ คุณสามารถใช้คำสั่งต่อไปนี้:

winget list

ด้วยสิ่งนี้คุณจะได้รับ รายการแอปพลิเคชันที่ตรวจพบโดยตัวจัดการแพ็กเกจ มีประโยชน์มากสำหรับการตัดสินใจว่าจะอัปเดตอะไรหรือจะเพิ่มอะไรลงในไฟล์การกำหนดค่าของคุณ

การติดตั้งระบบโดยอัตโนมัติด้วยไฟล์ YAML: ข้อดีของมันทั้งหมด

ส่วนที่น่าสนใจจริงๆ คือตอนที่คุณเปลี่ยนจากการพิมพ์คำสั่งทีละคำสั่งไปเป็น อธิบายสภาพแวดล้อมในอุดมคติของคุณด้วยไฟล์ YAML ไฟล์เดียวแทนที่จะใช้เอกสารสรุปคำสั่งหรือสคริปต์ที่ยุ่งยาก คุณสามารถกำหนดลักษณะการทำงานของเครื่องได้อย่างชัดเจน และมอบหมายงานนั้นให้กับ WinGet และ DSC

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

เพื่อให้วิธีการนี้ได้ผล คุณจำเป็นต้องมี WinGet เวอร์ชันที่ค่อนข้างใหม่ โดยเฉพาะอย่างยิ่ง v1.6.2631 หรือสูงกว่านี่คือช่วงเวลาที่การผสานรวมกับ DSC 3.0 และคำสั่ง winget configure ซึ่งรับผิดชอบในการประมวลผลไฟล์การกำหนดค่า YAML ได้ถูกนำมาใช้ในรูปแบบที่เสถียร

ข้อดีคือกระบวนการนี้จะกลายเป็น โดยไม่ต้องมีผู้ดูแลและสามารถทำซ้ำได้คุณเพียงแค่เรียกใช้คำสั่ง ยอมรับข้อตกลงที่จำเป็น แล้วคุณก็ไปชงกาแฟรอได้เลย ในขณะที่ระบบกำลังติดตั้งทุกอย่างที่จำเป็น ปรับแต่ง Windows ตั้งค่า IDE ของคุณ และเตรียมสภาพแวดล้อมให้พร้อมใช้งาน และหากคุณเปลี่ยนพีซีในวันพรุ่งนี้ คุณก็แค่ทำซ้ำขั้นตอนเดิม แล้วก็พร้อมใช้งานได้เลย

นอกจากนี้ ไฟล์เหล่านี้ยังสามารถ... บันทึกไว้ใน Git repository, OneDrive หรือที่ใดก็ได้ที่คุณต้องการแชร์ข้อมูลกับทีมของคุณ เช่น การเปลี่ยนแปลงเวอร์ชัน ปัญหาที่เปิดอยู่ และคำขอแก้ไขโค้ด... กล่าวโดยสรุปคือ ให้ถือว่าการตั้งค่าเครื่องของคุณเป็นโค้ด (IaC) ไม่ใช่สิ่งที่ต้องทำด้วยมือและทำซ้ำไม่ได้

ย.ม

คำสั่ง configure ของ winget และตัวเลือกหลักๆ ของคำสั่งนี้

ประตูสู่ระบบการประกาศทั้งหมดคือคำสั่ง การกำหนดค่าปีก โปรแกรมนี้มีหน้าที่อ่านไฟล์การกำหนดค่า WinGet ของคุณ ตรวจสอบความถูกต้อง ดาวน์โหลดโมดูล PowerShell ที่จำเป็น และนำการเปลี่ยนแปลงไปใช้

ก่อนที่จะเริ่มลงมือทำ ขอแนะนำให้พิจารณาอย่างรอบคอบก่อน เปิดใช้งานส่วนประกอบการกำหนดค่า (หากยังไม่ได้เปิดใช้งาน) โดยใช้:

winget configure --enable

เมื่อทำขั้นตอนนี้เสร็จแล้ว สิ่งที่ควรทำที่สุดคือตรวจสอบความถูกต้องของไฟล์ YAML ด้วยคำสั่ง:

winget configure validate -f ruta\a\archivo.winget

การตรวจสอบความถูกต้องจะตรวจสอบทั้งสองอย่าง ไวยากรณ์ YAML สอดคล้องกับรูปแบบ JSON การกำหนดค่าอย่างเป็นทางการ โปรดจำไว้ว่า YAML นั้นไวต่อการเยื้อง (ช่องว่าง ไม่ใช่แท็บ) ดังนั้นการแก้ไขไฟล์เหล่านี้ใน Visual Studio Code ด้วยส่วนขยาย Red Hat YAML และสคีมา WinGet ที่เชื่อมโยงจึงแทบจะเป็นสิ่งจำเป็นเพื่อหลีกเลี่ยงความผิดพลาด

เมื่อทุกอย่างดูดี คุณก็สามารถ... ปฏิบัติตามการตั้งค่าอย่างเคร่งครัด ด้วย:

winget configure --file ruta\a\archivo.winget --accept-configuration-agreements

ในขั้นตอนนี้ ตัวประมวลผลการกำหนดค่าจะเริ่มทำงาน โดยตีความไฟล์ YAML ดาวน์โหลดโมดูล DSC ที่ขาดหายไปจาก PowerShell Gallery และเริ่มดำเนินการตรวจสอบและเรียกใช้ทรัพยากร งานที่ทำได้จะถูกดำเนินการแบบขนาน ส่วนงานที่ไม่ต้องการการดำเนินการแบบขนาน จะถูกดำเนินการแบบขนาน สิทธิ์ผู้ดูแลระบบ จะทำให้เกิดการแจ้งเตือน UAC เมื่อปล่อยจรวดเนื่องจากระดับความสูงเกินกำหนด

หากคุณต้องการทำการทดสอบแบบ "แห้ง" ก่อนที่จะเปลี่ยนแปลงอะไร คุณสามารถใช้:

winget configure test -f ruta\a\archivo.winget --accept-configuration-agreements

เมื่อใช้คำสั่ง test โปรแกรม WinGet จะประเมินระบบโดยเปรียบเทียบกับสถานะที่ต้องการซึ่งอธิบายไว้ในไฟล์ และ มันจะบอกคุณว่ามีอะไรบ้างที่ไม่สมเหตุสมผลโดยไม่ต้องแตะต้องเครื่องเลยสักนิด วิธีนี้มีประโยชน์มากสำหรับการปรับการตั้งค่าที่ซับซ้อน และช่วยให้มั่นใจได้ว่าจะไม่มีเรื่องไม่คาดคิดเกิดขึ้นเมื่อทำการแก้ไขไฟล์

นอกจากนี้ยังสามารถทำงานกับไฟล์ระยะไกลได้ เช่น ไฟล์ที่จัดเก็บไว้ในที่เก็บข้อมูลสาธารณะหรือส่วนตัว โดยการเรียกใช้คำสั่งเช่น:

winget configure --accept-configuration-agreements --disable-interactivity -f https://tu-servidor/tu-config.winget

วิธีการใช้งานนี้เหมาะสมอย่างยิ่งในสถานการณ์ต่างๆ ดังนี้ การประจำการในวงกว้างหรือการบริหารส่วนกลางโดยที่ฝ่ายไอทีจะเผยแพร่การกำหนดค่า และผู้ใช้หรือสคริปต์เพียงแค่ต้องเรียกใช้คำสั่งเพื่อทำให้คอมพิวเตอร์ขององค์กรมีค่าตามมาตรฐานที่กำหนดไว้

อาร์กิวเมนต์ ตัวเลือก และคำสั่งย่อยของ winget configure

คำสั่งย่อย configure รองรับการตั้งค่าหลายอย่าง พารามิเตอร์สำหรับการปรับแต่งพฤติกรรมอย่างละเอียดสิ่งที่เกี่ยวข้องที่สุดบางประการได้แก่:

  • -f, –ไฟล์ เส้นทางไปยังไฟล์การกำหนดค่า WinGet ที่จะนำไปใช้
  • –เส้นทางโมดูล โฟลเดอร์ในเครื่องที่ใช้เก็บโมดูล DSC ที่ดาวน์โหลดมา (โดยค่าเริ่มต้นจะอยู่ใน %LOCALAPPDATA%\Microsoft\WinGet\Configuration\Modules)
  • –เส้นทางโปรเซสเซอร์ ตำแหน่งของตัวประมวลผลการกำหนดค่าแบบกำหนดเอง หากมี
  • –ยอมรับข้อตกลงการกำหนดค่า โปรดยอมรับคำเตือนเกี่ยวกับการตั้งค่าล่วงหน้าเพื่อหลีกเลี่ยงการแจ้งเตือนแบบโต้ตอบ
  • –ระงับรายละเอียดเบื้องต้น ลองซ่อนรายละเอียดการตั้งค่าเริ่มต้นเพื่อผลลัพธ์ที่ดูเรียบร้อยยิ่งขึ้น
  • –เปิดใช้งาน / –ปิดใช้งาน เปิดใช้งานหรือปิดใช้งานส่วนประกอบการกำหนดค่า (ต้องเข้าถึง Store)
  • –บันทึก, –เปิดบันทึก เปิดโฟลเดอร์ที่เก็บไฟล์บันทึกการตั้งค่าไว้
  • –verbose, –verbose-logs. เปิดใช้งานการบันทึกข้อมูลโดยละเอียดเพื่อการแก้ไขปัญหา
  • –nowarn, –ignore-warnings. ปิดการแสดงข้อความเตือนเมื่อออกจากโปรแกรม
  • –ปิดใช้งานการโต้ตอบ คุณสมบัตินี้ป้องกันการแจ้งเตือนแบบโต้ตอบทุกประเภท เหมาะสำหรับสคริปต์ที่ทำงานโดยอัตโนมัติ
  • –พร็อกซี / –ไม่ใช้พร็อกซี ฟังก์ชันนี้ช่วยให้คุณกำหนดพร็อกซีสำหรับการดำเนินการนั้นๆ หรือปิดการใช้งานพร็อกซีได้

นอกเหนือจากคำสั่งหลักแล้ว คำสั่ง winget configure มีคำสั่งย่อยหลายคำสั่ง สิ่งที่คุณควรรู้:

  • winget configure show -f . แสดงรายละเอียดของไฟล์การกำหนดค่าเฉพาะ ซึ่งมีประโยชน์สำหรับการตรวจสอบโดยไม่ต้องเปิดในโปรแกรมแก้ไขข้อความ
  • winget configure list. โปรแกรมนี้จะแสดงสรุปการตั้งค่าต่างๆ ที่ถูกนำไปใช้กับระบบ ซึ่งช่วยให้ติดตามได้ว่ามีการดำเนินการใดไปบ้างแล้ว
  • winget configure test -f . โหมดตรวจสอบที่เปรียบเทียบสถานะปัจจุบันของระบบกับสถานะที่กำหนดไว้ในการตั้งค่า
  • winget configure validate -f . ตรวจสอบความถูกต้องของไฟล์เท่านั้น โดยไม่ต้องแตะต้องเครื่องคอมพิวเตอร์
  • winget configure export -o . ฟังก์ชันนี้อนุญาตให้ส่งออกทรัพยากรการกำหนดค่าไปยังไฟล์ ไม่ว่าจะเป็นการกำหนดค่าแพ็กเกจทั้งหมด (--all) แพ็คเกจเฉพาะ (--package-id) หรือทรัพยากรเฉพาะ (--module y --resource) โดยจะเพิ่มข้อมูลต่อท้ายไฟล์เอาต์พุตหากไฟล์นั้นมีอยู่แล้ว

Winget

รูปแบบไฟล์การกำหนดค่า WinGet และหลักเกณฑ์การตั้งชื่อ

ไฟล์การกำหนดค่า WinGet ใช้ รูปแบบ YAML พร้อมด้วยสคีมา JSON ที่เกี่ยวข้อง ซึ่งเป็นตัวกำหนดโครงสร้างที่ถูกต้อง ระบบไฟล์ Manifest ของ WinGet เองก็ใช้ YAML เป็นพื้นฐานเช่นกัน ดังนั้นทุกอย่างจึงอยู่ในรูปแบบเดียวกัน

ตามธรรมเนียม ไฟล์เหล่านี้จะถูกบันทึกโดยใช้นามสกุล . .วิงเก็ตตัวอย่างเช่น configuration.wingetในโปรเจ็กต์ที่ใช้ Git โดยทั่วไปแนะนำให้จัดเก็บไฟล์ไว้ในไดเร็กทอรีที่ซ่อนไว้ .configออกจากเส้นทางเช่น ./.config/configuration.winget สำหรับการตั้งค่า "เริ่มต้น" ของโปรเจ็กต์

หากโปรเจ็กต์ของคุณใช้เครื่องมือหรือการตั้งค่าที่แตกต่างกันหลายแบบ คุณสามารถเก็บไฟล์การกำหนดค่าหลายไฟล์ไว้ในโฟลเดอร์เดียวกัน โดยแต่ละไฟล์ควรมีชื่อที่สื่อความหมายเพื่อระบุว่าใช้สภาพแวดล้อมใด (ตัวอย่างเช่น frontend.winget, แบ็กเอนด์.wingetฯลฯ )

บรรทัดแรกของไฟล์มักจะเป็นข้อความแสดงความคิดเห็นพิเศษ เพื่อแจ้งให้บรรณาธิการทราบว่าควรใช้รูปแบบ JSON ใด โดยทั่วไปจะมีลักษณะดังนี้:

# yaml-language-server: $schema=https://aka.ms/configuration-dsc-schema/0.2

ในทิศทางฐาน https://aka.ms/configuration-dsc-schema/ คุณสามารถตรวจสอบเวอร์ชันสคีมาล่าสุดและอัปเดตไฟล์ของคุณได้เมื่อ Microsoft ออกเวอร์ชันใหม่ที่มีฟังก์ชันการทำงานเพิ่มเติม

หลังจากส่วนหัวแล้ว โหนดรากของเอกสารจะเป็นเสมอ คุณสมบัติซึ่งจะต้องมีฟิลด์รวมอยู่ด้วย configurationVersion (ตัวอย่างเช่น 0.2.0) และสองส่วนหลักที่กำหนดโครงสร้างของทุกอย่าง: assertions y resources.

โครงสร้างของไฟล์การกำหนดค่า: คุณสมบัติ การยืนยัน และทรัพยากร

ภายใต้โหนด คุณสมบัติ ในอีกด้านหนึ่ง มีการประกาศว่า การกำหนดค่าเวอร์ชันซึ่งคุณควรเพิ่มขนาดเมื่อไฟล์มีการเปลี่ยนแปลง และในทางกลับกัน คอลเลกชันต่างๆ assertions y resources ที่อธิบายถึงพฤติกรรมนั้น

  • ส่วน การยืนยัน มันครอบคลุมถึงข้อกำหนดหรือเงื่อนไขเบื้องต้นที่ต้องเป็นไปตามนั้นเพื่อให้ทรัพยากรบางอย่างมีความหมาย เช่น เวอร์ชัน Windows ขั้นต่ำ การมีอยู่ของฟีเจอร์บางอย่าง เป็นต้น สิ่งเหล่านี้ไม่ใช่การกระทำในตัวเอง แต่เป็นการตรวจสอบสภาพแวดล้อม
  • ส่วน ทรัพยากร มันรวบรวมทรัพยากรการกำหนดค่าทั้งหมดที่คุณต้องการใช้งาน เช่น การติดตั้งซอฟต์แวร์ การตั้งค่าระบบ สคริปต์ การจัดการบริการ การเปลี่ยนแปลงรีจิสทรี เป็นต้น แต่ละรายการในรายการเหล่านี้จะถูกแทนด้วยโหนดประเภทหนึ่ง resource พร้อมข้อมูลที่จำเป็น

ในทั้งสองกรณี แต่ละรายการจะถูกกำหนดโดยการระบุทรัพยากร DSC ที่จะใช้โดยมีรูปแบบดังนี้ {NombreModulo}/{NombreRecursoDSC}. ยกตัวอย่างเช่น Microsoft.Windows.Settings/WindowsSettings เพื่อแตะการตั้งค่า Windows หรือ Microsoft.WinGet.DSC/WinGetPackage เพื่อติดตั้งแพ็กเกจ WinGet จาก DSC

นอกจากด้านทรัพยากรแล้ว แต่ละหน่วยมักจะประกอบด้วยส่วนต่างๆ ดังนี้ คำสั่งและการตั้งค่าตัวระบุที่ไม่บังคับ id และหากจำเป็น ให้ระบุรายการความสัมพันธ์ระหว่างกันด้วย dependsOn ไปสู่แหล่งข้อมูลหรือข้อกล่าวอ้างอื่นๆ

ข้อควรทราบ: ตรวจสอบเวอร์ชัน Windows และข้อกำหนดเบื้องต้นอื่นๆ

ลา การยืนยันทำหน้าที่เป็นตัวกรองเบื้องต้น ซึ่งจะตัดสินใจว่าการใช้งานทรัพยากรบางอย่างบนเครื่องปัจจุบันนั้นเหมาะสมหรือไม่ ด้วยวิธีนี้ คุณจะไม่พยายามติดตั้งหรือกำหนดค่าสิ่งใดบนระบบที่ไม่ตรงตามข้อกำหนดพื้นฐาน

ตัวอย่างทั่วไปคือการตรวจสอบ เวอร์ชันระบบปฏิบัติการขั้นต่ำการกำหนดค่าหลายอย่างต้องการ Windows 10 เวอร์ชัน 1809 ขึ้นไป หรือ Windows 11 รุ่นเฉพาะ และจะไม่มีประโยชน์ที่จะดำเนินการต่อหากคุณใช้เวอร์ชันเก่ากว่าที่ไม่รองรับ WinGet

การยืนยันรูปแบบนี้ใช้ทรัพยากร DSC เช่น Microsoft.Windows.Developer/OsVersionโดยระบุคุณสมบัติผ่านการตั้งค่า เวอร์ชันขนาดเล็ก (ตัวอย่างเช่น '10.0.22000') ซึ่งกำหนดค่าเกณฑ์ที่ยอมรับได้สำหรับการกำหนดค่านี้

การยืนยันสามารถ ประเมินแบบขนานโดยไม่มีลำดับที่ตายตัว และโดยพื้นฐานแล้วจะส่งคืนสถานะจริงหรือเท็จ หากการยืนยันส่งคืนค่าเท็จ (ไม่เป็นไปตามเงื่อนไข) ทรัพยากรใดๆ ที่รวมการยืนยันนั้นเป็นส่วนประกอบผ่านการยืนยันนั้น จะถูกยกเลิก dependsOn ระบบจะละเว้นโดยอัตโนมัติ

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

แม้ว่าการตั้งค่าบางอย่างจะไม่สามารถใช้งานได้ แต่ WinGet ก็จะยังคงพยายามใช้งานการตั้งค่าเหล่านั้นอยู่ดี ดำเนินการต่อด้วยแหล่งข้อมูลอิสระอื่นๆ เพื่อให้ระบบเข้าใกล้สถานะที่ต้องการมากที่สุด ในตอนท้าย คุณมีหน้าที่ตรวจสอบข้อผิดพลาดและตัดสินใจว่าจะเปลี่ยนแปลงการตั้งค่าหรือสภาพแวดล้อมหรือไม่

แหล่งข้อมูล: การติดตั้งแพ็กเกจ การปรับแต่ง Windows และการเรียกใช้สคริปต์

ส่วน ทรัพยากรเป็นหัวใจสำคัญในทางปฏิบัติของไฟล์การกำหนดค่าในส่วนนี้ ให้ระบุทุกสิ่งที่คุณต้องการให้เกิดขึ้นบนเครื่อง เช่น การติดตั้งซอฟต์แวร์ การเปลี่ยนแปลงการตั้งค่าระบบ การเรียกใช้สคริปต์ PowerShell การจัดการบริการ เป็นต้น

ทรัพยากรแต่ละรายการจะถูกกำหนดด้วยฟิลด์ resource ที่เป็นไปตามรูปแบบ Modulo/RecursoDSCตัวอย่างเช่น Microsoft.Windows.Settings/WindowsSettings เพื่อเปิดใช้งานฟังก์ชันของระบบ หรือ Microsoft.WinGet.DSC/WinGetPackage เพื่อจัดการการติดตั้งแพ็กเกจผ่าน WinGet จาก DSC

คุณสามารถกำหนดค่าเพิ่มเติมได้ (ถ้าต้องการ) รหัสประจำตัวเฉพาะ ซึ่งจะช่วยให้คุณใช้อ้างอิงได้ dependsOn ในแหล่งข้อมูลอื่นๆ วิธีนี้มีประโยชน์มากเมื่อคุณต้องการให้การกำหนดค่าส่วนประกอบเพิ่มเติมของ Visual Studio ขึ้นอยู่กับการติดตั้ง Visual Studio ไว้ล่วงหน้าอย่างชัดเจน

ภายในแต่ละแหล่งข้อมูล ส่วนนั้น คำสั่งต่างๆ ประกอบด้วยข้อมูลตามบริบท เกี่ยวกับวิธีการดำเนินการ: คำอธิบายงานเป็นข้อความ (description) หากยอมรับโมดูลตัวอย่างจาก PowerShell Gallery (allowPrerelease) และ securityContext ซึ่งบ่งชี้ว่าการดำเนินการนั้นต้องการสิทธิ์ระดับสูงหรือไม่

เมื่อคุณใส่ securityContext: ระดับสูงWinGet จะขอสิทธิ์ผู้ดูแลระบบเพียงครั้งเดียวในตอนเริ่มต้นการติดตั้ง และหลังจากนั้นจะสามารถเรียกใช้ทรัพยากรที่มีสิทธิ์ระดับสูงและสิทธิ์ทั่วไปโดยใช้กระบวนการต่างๆ โดยไม่แสดงหน้าต่าง UAC เพิ่มเติมให้คุณเห็น

ส่วน การตั้งค่าจะกำหนดคู่ชื่อ-ค่า ที่ส่งต่อไปยังทรัพยากร DSC อาจเป็นเรื่องง่ายๆ เช่น DeveloperMode: true เพื่อเปิดใช้งานโหมดนักพัฒนาของ Windows หรือพารามิเตอร์ที่ซับซ้อนกว่านั้น เช่น id y source จากแพ็กเกจ WinGet, เส้นทางไปยังไฟล์ .vsconfig, ค่ารีจิสทรีเฉพาะ หรือรายละเอียดของบริการที่ต้องเปิดใช้งาน

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

จัดเรียงส่วนแหล่งข้อมูลให้เป็นระเบียบและอ่านง่าย

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

กลยุทธ์ทั่วไปอย่างหนึ่งคือการจัดสรรทรัพยากรตามหลักเกณฑ์ดังต่อไปนี้ ลำดับการดำเนินการเชิงตรรกะ:

  1. อันดับแรก ระบบจะเตรียมอะไรบ้าง (การยืนยัน การอัปเดตพื้นฐาน)
  2. จากนั้นก็เป็นเครื่องมือทั่วไป (เบราว์เซอร์, โปรแกรมบีบอัดไฟล์, โปรแกรมยูทิลิตี้)
  3. จากนั้นก็เป็น IDE และ SDK
  4. สุดท้ายนี้ จะมีสคริปต์หรือการตั้งค่าที่เฉพาะเจาะจงมากขึ้น

อีกแนวทางที่น่าสนใจคือการจัดกลุ่มตาม ความน่าจะเป็นของความล้มเหลวหรือความซับซ้อนกล่าวอีกนัยหนึ่งคือ ควรจัดวางงานที่มักเกิดปัญหาบ่อยที่สุด (เช่น การติดตั้งขนาดใหญ่ที่ต้องอาศัยการเชื่อมต่อที่ดีหรือข้อมูลรับรอง) ไว้ตอนต้น เพื่อให้ผู้ใช้ทราบได้ตั้งแต่เนิ่นๆ ว่ามีบางอย่างผิดปกติโดยไม่ต้องรอให้ทุกอย่างเสร็จสมบูรณ์

หลายคนชอบจัดกลุ่มตาม ประเภทของทรัพยากรเริ่มจากแพ็กเกจ WinGet จากนั้นก็เป็นการตั้งค่า Windows (รีจิสทรี คุณสมบัติ บริการ) ต่อด้วยสคริปต์ และสุดท้ายคือเครื่องมือเฉพาะสำหรับโครงการนั้นๆ โครงสร้างแบบนี้มักจะคล้ายกับโครงสร้างทั่วไปของโครงการพัฒนาซอฟต์แวร์ และช่วยให้คุณเข้าใจโครงสร้างโดยรวมได้เร็วขึ้น

ไม่ว่าจะใช้เกณฑ์ใดก็ตาม ขอแนะนำอย่างยิ่งให้แนบเอกสารประกอบไปกับไฟล์ด้วย ไฟล์ README ในที่เก็บโค้ด โดยจะอธิบายโครงสร้างการกำหนดค่า การพึ่งพาที่สำคัญ เวอร์ชัน Windows ขั้นต่ำที่ต้องการ และขั้นตอนการดำเนินการที่แนะนำ

เอกสารดังกล่าวทำให้เป็นเช่นนั้น นักพัฒนาคนอื่นๆ สามารถร่วมสร้างคลังข้อมูลได้โดยมีความเสี่ยงน้อยลง เพื่อทำลายบางสิ่งบางอย่าง เนื่องจากพวกเขาเข้าใจมากขึ้นว่าแต่ละบล็อกทำอะไร และมีการยืนยันหรือเงื่อนไขใดบ้างที่เกี่ยวข้อง ก่อนที่จะเพิ่มทรัพยากรใหม่

การใช้ตัวแปร ${WinGetConfigRoot} ในเส้นทางไฟล์

แหล่งข้อมูล DSC หลายแห่งยอมรับพารามิเตอร์ที่คาดหวัง เส้นทางไปยังไฟล์เฉพาะการตั้งค่า สคริปต์ เทมเพลต และอื่นๆ ของ Visual Studio หากคุณใช้พาธแบบสัมบูรณ์ ไฟล์ของคุณจะใช้งานไม่ได้เมื่อคุณเปลี่ยนผู้ใช้ ไดรฟ์ หรือโฟลเดอร์

เพื่อป้องกันปัญหานี้ WinGet จึงแนะนำตัวแปรนี้ ${WinGetConfigRoot}ซึ่งชี้ไปยังไดเร็กทอรีที่คุณกำลังเรียกใช้งาน winget configureจากนั้นคุณสามารถสร้างเส้นทางสัมพัทธ์ที่จะใช้งานได้เหมือนกันบนคอมพิวเตอร์ทุกเครื่องที่ใช้โครงสร้างโฟลเดอร์เดียวกัน

ตัวอย่างเช่น หากคุณบันทึกไฟล์การกำหนดค่าไว้ใน .config/configuration.winget และไฟล์ .vsconfig ในไดเร็กทอรีหลักของที่เก็บข้อมูล คุณสามารถใช้เส้นทางได้ดังนี้ '${WinGetConfigRoot}\..\.vsconfig'ส่วนนั้น .. ขึ้นไปหนึ่งระดับจากโฟลเดอร์ทำงาน แล้วเข้าไปในไดเร็กทอรีที่ไฟล์ .vsconfig อยู่

เทคนิคนี้ทำให้สามารถ การตั้งค่าเดียวกันนี้ใช้ได้กับสมาชิกทุกคนในทีม ซึ่งสามารถโคลนโปรเจ็กต์ไปยังพาธต่างๆ ได้ ตราบใดที่ยังคงรักษาตำแหน่งสัมพัทธ์ของไฟล์ภายใน repository ไว้

อย่างไรก็ตาม ควรระบุในไฟล์ README ว่า ผู้ใช้ต้องตรวจสอบให้แน่ใจว่าไฟล์เป้าหมายมีอยู่จริง ในเส้นทางสัมพัทธ์ที่คาดว่าจะมีการกำหนดค่าก่อนที่จะเรียกใช้ winget configure มิเช่นนั้นการดำเนินการจะแจ้งข้อผิดพลาดเกี่ยวกับทรัพยากรเหล่านั้น

แหล่งที่มาของโมดูล DSC และแหล่งข้อมูลพร้อมใช้งาน

เพื่อให้ระบบทั้งหมดนี้ทำงานได้ WinGet จำเป็นต้องอาศัย... โมดูล PowerShell ที่ใช้ทรัพยากร DSCบางส่วนมาพร้อมกับระบบโดยค่าเริ่มต้น (ที่เรียกว่าทรัพยากรในกล่องขาเข้า) และบางส่วนได้มาจาก PowerShell Gallery

ในบรรดาทรัพยากรมาตรฐาน คุณยังมีโมดูลให้จัดการอีกด้วย ตัวแปรสภาพแวดล้อมติดตั้งหรือถอนการติดตั้งแพ็กเกจ MSI (msiPackage), แก้ไขคีย์และค่ารีจิสทรี (Registry), เรียกใช้บล็อกสคริปต์ (Script), ควบคุมบริการของ Windows (Service), เพิ่มหรือลบ บทบาทและคุณสมบัติ (WindowsFeature) หรือเริ่มและหยุดกระบวนการ (WindowsProcess)

La PowerShell Gallery มีโมดูลเพิ่มเติมอีกหลายร้อยโมดูล โดยใช้ทรัพยากร DSC ที่ชุมชนร่วมกันสร้างขึ้น คุณสามารถใช้ตัวกรองการค้นหาเพื่อแสดงเฉพาะทรัพยากรที่ระบุว่าเป็น "ทรัพยากร DSC" และค้นหาส่วนประกอบที่นำกลับมาใช้ใหม่ได้สำหรับการกำหนดค่าของคุณ

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

ด้วยเหตุผลดังกล่าว ไมโครซอฟต์จึงยืนยันว่า ที่มาและเนื้อหาของโมดูล ก่อนนำไปใช้ในการกำหนดค่าที่จะใช้งานบนเครื่องที่ใช้งานจริง โดยเฉพาะอย่างยิ่งหากทรัพยากรเหล่านั้นทำงานภายใต้บริบทด้านความปลอดภัยระดับสูง

เพื่อดูตัวอย่างไฟล์การกำหนดค่าที่เป็นรูปธรรม ไมโครซอฟต์ได้จัดทำ... ที่เก็บการกำหนดค่า DSC WinGet และ YAML สามารถเข้าถึงได้ผ่านลิงก์สั้น https://aka.ms/dsc.yaml ซึ่งคุณสามารถค้นหาแรงบันดาลใจและใช้เทมเพลตที่ผ่านการทดสอบแล้วเป็นพื้นฐานได้

นโยบายด้านความปลอดภัย ความน่าเชื่อถือ และนโยบายกลุ่มที่เกี่ยวข้องกับ WinGet

เนื่องจาก WinGet และ DSC สามารถทำได้ ติดตั้งและกำหนดค่าซอฟต์แวร์จำนวนมากด้านความปลอดภัยเป็นสิ่งสำคัญอย่างยิ่ง โดยเฉพาะในสภาพแวดล้อมขององค์กรที่มีข้อกำหนดด้านการปฏิบัติตามกฎระเบียบที่ค่อนข้างเข้มงวด

WinGet ผสานรวมกับ Microsoft Store ผ่านทาง origin msstore และใช้เทคนิคของ การติดเข็มกลัดใบรับรอง เพื่อตรวจสอบว่าใบรับรอง HTTPS ของร้านค้าตรงกับใบรับรองที่รู้จักใบใดใบหนึ่ง และป้องกันการโจมตีแบบคนกลาง (MITM)

ในองค์กรที่ใช้ไฟร์วอลล์ที่มีการตรวจสอบ SSL พฤติกรรมนี้อาจก่อให้เกิดปัญหาได้ หากอุปกรณ์รักษาความปลอดภัยทำการบรรจุการเชื่อมต่อใหม่ด้วยใบรับรองของตนเอง สำหรับกรณีเช่นนี้ มีนโยบายที่เรียกว่า BypassCertificatePinningForMicrosoftStore ซึ่งช่วยให้คุณระบุได้ว่า WinGet ควรข้ามการตรวจสอบนั้นหรือไม่

ตัวเลือกที่เป็นไปได้ ได้แก่ การปล่อยให้การตั้งค่านโยบายเป็นค่าเดิม (โดยเคารพพฤติกรรมเริ่มต้นที่แนะนำ) หรือการเปิดใช้งานเพื่อให้ WinGet ทำงานได้ อย่าตรวจสอบความถูกต้องของใบรับรองร้านค้า หรือปิดใช้งานโดยชัดเจนเพื่อบังคับให้ยอมรับเฉพาะใบรับรองของ Microsoft ที่รู้จักเท่านั้น

ปิดใช้งานการยึดใบรับรอง เพิ่มความเสี่ยงต่อการโจมตีแบบ Man-in-the-Middleดังนั้น การกระทำดังกล่าวจึงควรทำเมื่อทราบข้อเท็จจริงอย่างครบถ้วน และเมื่อไม่มีทางเลือกอื่นที่เหมาะสม โดยต้องสอดคล้องกับกลยุทธ์ด้านความปลอดภัยโดยรวม

นอกเหนือจากคำสั่งนี้แล้ว ยังมีเทมเพลตนโยบายกลุ่มเฉพาะของ WinGet (.admx และ .adml ไฟล์) ที่อนุญาตให้ผู้ดูแลระบบดำเนินการได้ ควบคุมแหล่งที่มาที่อนุญาตหรือบล็อก เปิดใช้งานหรือปิดใช้งานคุณสมบัติทดลอง กำหนดพฤติกรรมต่อพร็อกซี และโดยทั่วไปแล้ว จะกำหนดรูปแบบการทำงานของตัวจัดการแพ็กเกจภายในองค์กร

เทมเพลตเหล่านี้ถูกแจกจ่ายไว้ในแพ็กเกจแล้ว DesktopAppInstallerPolicies.zip ในที่เก็บ GitHub ของ WinGet เมื่อคลายไฟล์แล้ว ไฟล์จะถูกคัดลอกไปยัง C:\Windows\PolicyDefinitions ขณะนี้โฟลเดอร์ภาษาที่เกี่ยวข้องพร้อมใช้งานแล้ว ดังนั้นจึงสามารถจัดการได้จากคอนโซลการจัดการนโยบายกลุ่ม

นอกจากนี้ยังมีออบเจ็กต์นโยบายกลุ่มอีกด้วย เช่น EnableWindowsPackageManagerConfiguration และ EnableWindowsPackageManagerConfigurationExplanation ซึ่งอนุญาตให้บล็อกการใช้งานไฟล์การกำหนดค่า WinGet ทั่วทั้งองค์กร ในกรณีที่พิจารณาว่าฟังก์ชันนี้ควรถูกจำกัดอย่างเข้มงวด

แหล่งเก็บข้อมูลเพิ่มเติมและการใช้แหล่งข้อมูลส่วนตัวใน WinGet

โดยปกติแล้ว WinGet จะใช้แหล่งข้อมูลหลักดังต่อไปนี้: Microsoft Store และคลังเก็บข้อมูลชุมชนบน GitHubที่นี่คุณสามารถค้นหาไฟล์ manifest สำหรับโปรแกรมยอดนิยมมากมาย เช่น เว็บเบราว์เซอร์ ชุดพัฒนาซอฟต์แวร์ เครื่องมือออกแบบ โปรแกรมยูทิลิตี้ต่างๆ และอื่นๆ อีกมากมาย

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

WinGet อนุญาตให้คุณลงทะเบียนแหล่งข้อมูลเพิ่มเติมโดยใช้คำสั่ง:

winget source add --name <nombre_del_repositorio> --arg <URL_del_repositorio>

โดยปกติแล้ว ต้นทางนี้จะเป็นประเภท REST โดยค่าเริ่มต้น แต่คุณสามารถระบุประเภทได้ด้วยวิธีอื่น --type หากคุณต้องการ นอกจากนี้ยังมีพารามิเตอร์ต่างๆ เช่น –ระดับความน่าเชื่อถือ เพื่อกำหนดระดับความไว้วางใจ (ไม่มีเลย หรือ ไว้วางใจได้) และ –ยอมรับข้อตกลงแหล่งที่มา เพื่อยอมรับข้อตกลงใบอนุญาตซอร์สโค้ดโดยอัตโนมัติ ซึ่งเป็นสิ่งสำคัญเมื่อทำการรวมคลังเก็บข้อมูลโดยอัตโนมัติ

หากต้องการตรวจสอบว่าคุณมีฟอนต์ใดบ้างในคอมพิวเตอร์ของคุณ คุณสามารถเรียกใช้คำสั่งต่อไปนี้:

winget source list

คำสั่งนี้จะส่งคืนแหล่งที่มาทั้งหมดที่มีอยู่ พร้อมชื่อและประเภทของแหล่งที่มา จากนั้น การค้นหาและการติดตั้งของ WinGet จะคำนึงถึงที่เก็บข้อมูลเพิ่มเติมตามการตั้งค่าที่คุณกำหนดไว้

มีโครงการต่างๆ ที่นำเสนอ โซลูชันพร้อมใช้งานสำหรับที่เก็บข้อมูล WinGet ส่วนตัว สามารถใช้งานได้บน Azure หรือการติดตั้งภายในองค์กรโดยใช้ Docker ซึ่งมีความยืดหยุ่นสูงในการตั้งค่าแคตตาล็อกขององค์กรหรือสภาพแวดล้อมที่มีการควบคุม โดยมีเฉพาะซอฟต์แวร์ที่ได้รับการอนุมัติจากฝ่ายไอทีเท่านั้น

ในทางปฏิบัติ การรวมที่เก็บข้อมูลส่วนตัวเข้ากับไฟล์การกำหนดค่า YAML ที่ออกแบบมาอย่างดีจะช่วยให้ กำหนดมาตรฐานซอฟต์แวร์และการกำหนดค่าอุปกรณ์ให้สมบูรณ์ ในฐานะที่คุณเป็นเจ้าของบริษัท คุณจะมั่นใจได้ว่าทุกสิ่งทุกอย่างมาจากแหล่งผลิตที่คุณควบคุมได้เอง

ด้วยองค์ประกอบทั้งหมดข้างต้น WinGet ไฟล์การกำหนดค่า YAML และทรัพยากร DSC จึงเปลี่ยนงานที่น่าเบื่อในการเตรียมและบำรุงรักษาพีซี Windows ให้กลายเป็นกระบวนการที่ง่ายขึ้น เร็วขึ้น แม่นยำขึ้น และปลอดภัยกว่ามากไม่ว่าคุณจะเป็นนักพัฒนาที่ต้องการจำลองสภาพแวดล้อมการทำงานของคุณไปยังคอมพิวเตอร์หลายเครื่อง หรือคุณเป็นผู้จัดการกลุ่มคอมพิวเตอร์ในองค์กรและต้องการหยุดการทำงานทุกอย่างด้วยตนเอง