WinGet dan file YAML untuk mengkonfigurasi PC Anda seperti seorang profesional.

  • WinGet memungkinkan Anda untuk menginstal, memperbarui, dan menghapus instalasi aplikasi di Windows menggunakan baris perintah dan manifes YAML yang telah divalidasi.
  • File konfigurasi WinGet dalam format YAML, dikombinasikan dengan DSC, secara deklaratif menjelaskan keadaan PC yang diinginkan.
  • Bagian pernyataan dan sumber daya mengontrol prasyarat, instalasi perangkat lunak, pengaturan Windows, dan eksekusi skrip.
  • Repositori privat, modul DSC, dan kebijakan grup memungkinkan model deklaratif ini diterapkan pada implementasi perusahaan yang aman.

File WinGet dan YAML untuk mengkonfigurasi PC.

Jika setiap kali Anda mendapatkan peralatan baru, Anda harus menghabiskan waktu berjam-jam Menginstal program, menyesuaikan Windows, dan menyiapkan lingkungan pengembangan Anda.Saatnya menyederhanakan. WinGet dan file YAML memungkinkan Anda mengubah seluruh proses yang rumit itu menjadi proses yang hampir otomatis yang dapat Anda ulangi di PC mana pun dengan satu perintah.

Idenya adalah untuk menjelaskan dalam file konfigurasi apa yang ingin Anda instal dan bagaimana sistem Anda harus dikonfigurasi, lalu membiarkannya berjalan secara otomatis. Windows Package Manager (winget) bersama dengan PowerShell Desired State Configuration (DSC) Lakukan pekerjaan kotor: instal perangkat lunak, terapkan pengaturan, jalankan skrip, dan periksa apakah mesin Anda dalam kondisi yang tepat agar Anda dapat mulai bekerja tanpa membuang waktu.

Apa itu WinGet dan mengapa sangat berguna untuk mengotomatiskan PC Anda?

WinGet adalah pengelola paket resmi Microsoft untuk Windows 10 dan Windows 11.Aplikasi ini bekerja dari baris perintah dan memungkinkan Anda untuk menginstal, memperbarui, mengkonfigurasi, dan menghapus aplikasi dengan cara yang sangat mirip dengan apa yang dilakukan di GNU/Linux dengan apt, dnf, atau yang serupa, tetapi terintegrasi sempurna ke dalam ekosistem Windows.

Alih-alih mencari installer di ratusan situs web, mengunduh file EXE atau MSI, dan mengklik “Berikutnya, berikutnya, terima”, dengan WinGet Anda dapat menjalankan perintah seperti winget instal nama paket Sistem kemudian mengunduh program dari sumber tepercaya, melakukan instalasi senyap, dan mendaftarkan paket untuk pembaruan di masa mendatang.

Sumber perangkat lunak utama yang digunakan WinGet adalah Microsoft Store dan repositori komunitas yang dihosting di GitHubdi mana setiap aplikasi dijelaskan oleh manifes YAML yang menunjukkan cara menginstalnya, versinya, hash integritas, dll. Selain itu, dimungkinkan untuk menambahkan repositori pribadi, seperti repositori untuk organisasi Anda, untuk mendistribusikan perangkat lunak internal dengan cara yang terkontrol.

Seluruh ekosistem WinGet didasarkan pada tiga pilar:

  • La CLI winget (perintah yang Anda gunakan di terminal).
  • Los layanan yang menampung dan memvalidasi paket.
  • Los File konfigurasi YAML yang memungkinkan Anda untuk secara deklaratif mendefinisikan keadaan yang diinginkan dari seluruh mesin, bukan hanya aplikasi individual.

sayap

Perintah WinGet dasar untuk mengelola aplikasi

Sebelum kita membahas aspek teknis file konfigurasi YAML, ada baiknya kita memahami dasar-dasarnya terlebih dahulu. Perintah WinGet dasar untuk penggunaan sehari-hariSemua dikelola dari PowerShell, Windows Terminal, atau command prompt klasik.

Jika Anda hanya menulis sayap Di konsol, Anda akan melihat versi yang terpasang, subperintah yang tersedia, dan ringkasan opsi. Dari situ, Anda dapat mulai bereksperimen tanpa rasa takut.

untuk instal aplikasi Anda menggunakan subperintah install. Misalnya, untuk menginstal Visual Studio Code di PC Anda, Anda cukup melakukan:

winget install Microsoft.VisualStudioCode

Dalam hal ini, Microsoft.VisualStudioCode adalah pengidentifikasi paket yang tepat. di repositori WinGet. Dalam banyak kasus, Anda juga dapat menginstal menggunakan nama persis seperti yang muncul di Store, dalam tanda kutip jika ada spasi, tetapi menggunakan ID mengurangi ambiguitas.

Jika Anda ingin perbarui program AndaAnda dapat meminta WinGet untuk mencoba mengunggah semua yang dikenalinya dengan perintah berikut:

winget upgrade --all

Atau Anda bisa fokus pada aplikasi tertentu, misalnya:

winget upgrade Microsoft.VisualStudioCode

Versi modern WinGet mampu memperbarui tidak hanya apa yang diinstalnya sendiri, tetapi juga aplikasi yang terdeteksi pada sistem yang memiliki manifes terkait di sumbernya.

untuk uninstall perangkat lunakMekanismenya juga sangat sederhana:

winget uninstall Microsoft.VisualStudioCode

Penghapusan akan berhasil selama WinGet memiliki program tersebut dalam katalognya, baik karena telah menginstalnya atau karena mengenalinya melalui informasi yang terdaftar dalam sistem.

Saat Anda perlu mencari program, Anda dapat menggunakan Pencarian WingetSebagai contoh, untuk melihat opsi notepad apa saja yang tersedia:

winget search notepad

Perintah tersebut akan mengembalikan daftar yang berisi nama, ID paket, dan asal (repositori komunitas, toko, atau repositori pribadi), dan ID tersebutlah yang harus Anda gunakan saat instalasi atau peningkatan agar lebih aman.

Jika Anda ingin mengetahui perangkat lunak mana yang mengontrol WinGet di komputer Anda, Anda dapat menggunakan:

winget list

Dengan ini Anda akan mendapatkan Inventaris aplikasi yang terdeteksi oleh pengelola paket. Sangat berguna untuk memutuskan apa yang perlu diperbarui atau apa yang perlu disertakan dalam file konfigurasi Anda.

Mengotomatiskan instalasi dengan file YAML: keindahan dari semuanya

Bagian yang benar-benar menarik muncul ketika Anda beralih dari mengetik perintah satu per satu ke Jelaskan lingkungan ideal Anda dalam satu file YAML.Alih-alih memiliki lembar contekan perintah atau skrip yang rapuh, Anda secara deklaratif mendefinisikan bagaimana Anda ingin mesin tersebut terlihat dan mendelegasikan pekerjaan tersebut ke WinGet dan DSC.

File konfigurasi WinGet berisi daftar paket, versi, alat, skrip, dan pengaturan sistem yang Anda butuhkan untuk lingkungan pengembangan Anda (atau untuk seluruh perusahaan). Ini tidak hanya terbatas pada menginstal program: ini dapat mengaktifkan fitur Windows, mengubah registri, mengelola layanan, menjalankan skrip PowerShell… Semua yang diperlukan untuk menempatkan PC dalam keadaan tertentu.

Agar ini berfungsi, Anda perlu memiliki versi WinGet yang cukup baru, khususnya v1.6.2631 atau lebih tinggiInilah saatnya integrasi dengan DSC 3.0 dan perintah winget configure, yang bertanggung jawab untuk memproses file konfigurasi YAML, diperkenalkan secara stabil.

Keuntungannya adalah prosesnya menjadi tanpa pengawasan dan dapat diulangAnda menjalankan perintah, menerima perjanjian yang diperlukan, dan Anda dapat pergi minum kopi sementara sistem menginstal semua yang dibutuhkan, menyesuaikan Windows, mengkonfigurasi IDE Anda, dan menyiapkan lingkungan agar siap digunakan. Dan jika Anda mengganti PC besok, Anda tinggal mengulangi prosesnya dan Anda siap.

Selain itu, file-file ini dapat simpan ke repositori Git, OneDrive, atau ke mana pun Anda mauBagikan dengan tim Anda, perubahan versi, masalah terbuka, dan permintaan pull... Singkatnya, perlakukan konfigurasi mesin Anda sebagai kode (IaC) dan bukan sebagai sesuatu yang manual dan tidak dapat diulang.

YAML

Perintah konfigurasi winget dan opsi utamanya

Gerbang menuju seluruh sistem deklaratif adalah perintah. konfigurasi winget. Bagian ini bertanggung jawab untuk membaca file konfigurasi WinGet Anda, memvalidasi kebenarannya, mengunduh modul PowerShell yang diperlukan, dan menerapkan perubahan.

Sebelum memulai, ada baiknya mengaktifkan komponen konfigurasi (jika belum aktif) dengan:

winget configure --enable

Setelah itu selesai, hal paling masuk akal yang harus dilakukan adalah memulai dengan memvalidasi file YAML dengan perintah:

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

Pemeriksaan validasi mencakup keduanya. Sintaks YAML sesuai dengan skema JSON. Konfigurasi resmi. Perlu diingat bahwa YAML peka terhadap indentasi (spasi, bukan tab), jadi mengedit file-file ini di Visual Studio Code dengan ekstensi Red Hat YAML dan skema WinGet yang tertaut hampir wajib dilakukan untuk menghindari kebingungan.

Ketika semuanya terlihat baik, Anda bisa Terapkan pengaturan tersebut dengan serius. dengan:

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

Pada titik ini, prosesor konfigurasi mulai bekerja, menginterpretasikan YAML, mengunduh modul DSC yang hilang dari PowerShell Gallery, dan mulai mengeksekusi pernyataan dan sumber daya. Tugas yang memungkinkan akan dieksekusi secara paralel. Tugas yang membutuhkan hak administrator akan memicu peringatan UAC saat peluncuran terkait elevasi.

Jika Anda lebih suka melakukan "uji coba kering" sebelum mengubah apa pun, Anda dapat menggunakan:

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

Dengan pengujian, WinGet mengevaluasi sistem dengan membandingkannya dengan kondisi yang diinginkan yang dijelaskan dalam file dan Ini memberitahu Anda hal-hal apa saja yang tidak sesuai.tanpa perlu menyentuh mesin sama sekali. Ini sangat berguna untuk menyesuaikan pengaturan yang kompleks dan memastikan tidak akan ada kejutan saat menerapkan file tersebut.

Dimungkinkan juga untuk bekerja dengan file jarak jauh, misalnya yang dihosting di repositori publik atau pribadi, dengan menjalankan perintah seperti:

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

Metode penggunaan ini sangat cocok dalam skenario berikut: penyebaran massal atau administrasi terpusatdi mana departemen TI menerbitkan konfigurasi dan pengguna atau skrip hanya perlu menjalankan perintah untuk membuat komputer perusahaan menggunakan standar yang telah ditentukan.

Argumen, opsi, dan subperintah dari winget configure

Subperintah configure mendukung sejumlah parameter untuk penyempurnaan perilakuBeberapa yang paling relevan adalah:

  • -f, –file. Jalur ke file konfigurasi WinGet yang akan diterapkan.
  • –jalur-modul. Folder lokal tempat modul DSC yang diunduh akan disimpan (secara default di %LOCALAPPDATA%\Microsoft\WinGet\Configuration\Modules).
  • –jalur-prosesor. Lokasi prosesor konfigurasi khusus, jika ada.
  • –terima-perjanjian-konfigurasi. Terima peringatan konfigurasi terlebih dahulu untuk menghindari notifikasi interaktif.
  • –menyembunyikan detail awal. Cobalah menyembunyikan detail pengaturan awal untuk tampilan yang lebih bersih.
  • –aktifkan / –nonaktifkan. Mengaktifkan atau menonaktifkan komponen konfigurasi (memerlukan akses ke Store).
  • –log, –buka-log. Buka folder tempat log konfigurasi disimpan.
  • –verbose, –verbose-logs. Mengaktifkan pencatatan detail untuk pemecahan masalah.
  • –nowarn, –ignore-warnings. Abaikan pesan peringatan saat keluar.
  • –nonaktifkan-interaktivitas. Ini mencegah segala jenis perintah interaktif, ideal untuk skrip yang berjalan tanpa pengawasan.
  • –proxy / –no-proxy. Ini memungkinkan Anda untuk menentukan proksi untuk eksekusi spesifik tersebut atau menonaktifkan penggunaan proksi.

Selain perintah utama, winget configure memiliki beberapa subperintah Apa yang harus Anda ketahui:

  • winget configure show -f . Menampilkan detail dari file konfigurasi tertentu, berguna untuk memeriksanya tanpa membukanya di editor.
  • winget configure list. Ini menampilkan ringkasan konfigurasi yang telah diterapkan pada sistem, yang membantu untuk melacak apa saja yang telah dijalankan.
  • winget configure test -f . Mode verifikasi yang membandingkan keadaan sistem saat ini dengan keadaan yang telah ditentukan dalam konfigurasi.
  • winget configure validate -f . Lakukan validasi hanya pada file, tanpa menyentuh mesin.
  • winget configure export -o . Ini memungkinkan mengekspor sumber daya konfigurasi ke file, baik itu semua konfigurasi paket (--all), paket khusus (--package-id) atau sumber daya tertentu (--module y --resource), menambahkan ke file output jika sudah ada.

sayap

Format file konfigurasi WinGet dan konvensi penamaan

File konfigurasi WinGet menggunakan Format YAML dengan skema JSON terkait. yang mendefinisikan struktur yang valid. Sistem manifes WinGet sendiri juga berbasis YAML. Jadi semuanya sesuai dengan model yang sama.

Sesuai konvensi, file-file ini disimpan dengan ekstensi . sayap, sebagai contoh configuration.wingetDalam proyek yang menggunakan Git, umumnya disarankan untuk menyimpannya di direktori tersembunyi. .configmeninggalkan rute seperti ./.config/configuration.winget untuk konfigurasi "default" proyek.

Jika proyek Anda menggunakan kombinasi alat atau preferensi yang berbeda, Anda dapat menyimpan beberapa file konfigurasi dalam folder yang sama, masing-masing dengan nama deskriptif yang menunjukkan lingkungan mana yang digunakannya (misalnya, frontend.winget, backend.winget, Dll).

Baris pertama file biasanya berupa komentar khusus untuk memberi tahu editor skema JSON mana yang harus digunakan. Biasanya terlihat seperti ini:

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

Ke arah dasar https://aka.ms/configuration-dsc-schema/ Anda dapat memeriksa versi skema terbaru dan memperbarui file Anda ketika Microsoft merilis revisi baru dengan lebih banyak kemampuan.

Setelah header tersebut, node akar dokumen selalu propertiesyang harus mencakup sebuah kolom configurationVersion (misalnya 0.2.0) dan dua bagian utama yang menyusun semuanya: assertions y resources.

Struktur file konfigurasi: properti, pernyataan, dan sumber daya.

Di bawah simpul properties Di satu sisi, dinyatakan bahwa konfigurasiVersiyang harus Anda tingkatkan seiring perkembangan file, dan di sisi lain koleksinya assertions y resources yang menggambarkan perilaku tersebut.

  • Bagian pernyataan. Ini mencakup pernyataan atau prasyarat yang harus dipenuhi agar sumber daya tertentu menjadi bermakna: versi Windows minimum, keberadaan fitur tertentu, dll. Ini bukanlah tindakan itu sendiri, melainkan pemeriksaan lingkungan.
  • Bagian sumber daya Ini mengumpulkan semua sumber daya konfigurasi yang ingin Anda terapkan: instalasi perangkat lunak, pengaturan sistem, skrip, manajemen layanan, perubahan registri, dll. Setiap item dalam daftar ini diwakili oleh node bertipe resource dengan informasi yang diperlukan.

Dalam kedua kasus tersebut, Setiap entri didefinisikan dengan menunjukkan sumber daya DSC yang akan digunakan., dengan format {NombreModulo}/{NombreRecursoDSC}. Sebagai contoh Microsoft.Windows.Settings/WindowsSettings untuk menyentuh pengaturan Windows, atau Microsoft.WinGet.DSC/WinGetPackage untuk menginstal paket WinGet dari DSC.

Bersamaan dengan bidang sumber daya, setiap unit biasanya mencakup bagian-bagian dari arahan dan pengaturan, sebuah pengidentifikasi opsional id dan, bila perlu, daftar dependensi dependsOn terhadap sumber daya atau pernyataan lain.

Pernyataan: Periksa versi Windows dan prasyarat lainnya

itu Pernyataan bertindak sebagai pra-filter. yang menentukan apakah masuk akal untuk menjalankan sumber daya tertentu pada mesin saat ini. Dengan cara ini, Anda tidak mencoba menginstal atau mengkonfigurasi sesuatu pada sistem yang tidak memenuhi persyaratan dasar.

Contoh tipikalnya adalah memeriksa versi sistem operasi minimumBanyak konfigurasi memerlukan setidaknya Windows 10 versi 1809 atau build Windows 11 tertentu, dan tidak ada gunanya melanjutkan jika Anda menggunakan versi yang lebih lama yang bahkan tidak mendukung WinGet.

Pernyataan dengan gaya ini menggunakan sumber daya DSC seperti Microsoft.Windows.Developer/OsVersion, menunjukkan properti melalui pengaturan Versi Mini (misalnya '10.0.22000') yang mendefinisikan ambang batas yang dapat diterima untuk konfigurasi tersebut.

Pernyataan dapat evaluasi secara paraleltanpa urutan yang ketat, dan pada dasarnya mengembalikan status benar atau salah. Jika pernyataan tersebut mengembalikan nilai salah (tidak terpenuhi), maka sumber daya apa pun yang menyertakannya sebagai dependensi akan dihapus. dependsOn Ini akan dihilangkan secara otomatis.

Perilaku ini dianggap sebagai hasil yang benar dari perspektif sistem deklaratif: lebih baik melewatkan blok yang tidak masuk akal daripada memaksanya dieksekusi di lingkungan yang tidak sesuai. Pesan keluaran mungkin menunjukkan sesuatu seperti, "Suatu sumber daya tidak dieksekusi karena sebuah pernyataan gagal atau salah."

Sekalipun beberapa pengaturan tidak berlaku, WinGet tetap akan mencoba menerapkannya. Lanjutkan dengan sumber daya independen lainnya untuk membawa sistem sedekat mungkin ke kondisi yang diinginkan. Pada akhirnya, Anda bertanggung jawab untuk meninjau kesalahan dan memutuskan apakah akan mengubah konfigurasi atau lingkungan.

Sumber daya: Menginstal paket, menyesuaikan Windows, dan menjalankan skrip

Bagian Resources adalah inti praktis dari file konfigurasi.Di sini Anda mencantumkan semua hal yang ingin Anda lakukan pada mesin tersebut: instalasi perangkat lunak, perubahan konfigurasi sistem, menjalankan skrip PowerShell, manajemen layanan, dll.

Setiap sumber daya didefinisikan dengan sebuah field. resource yang mengikuti bentuk Modulo/RecursoDSC, sebagai contoh Microsoft.Windows.Settings/WindowsSettings untuk mengaktifkan fungsi sistem, atau Microsoft.WinGet.DSC/WinGetPackage untuk mengatur instalasi paket melalui WinGet dari DSC.

Secara opsional, Anda dapat menetapkan ID unik yang akan membantu Anda untuk merujuknya dari dependsOn di sumber daya lain. Ini sangat berguna ketika Anda menginginkan, misalnya, konfigurasi komponen Visual Studio tambahan agar secara eksplisit bergantung pada Visual Studio itu sendiri yang telah terinstal sebelumnya.

Di dalam setiap sumber daya, bagian tersebut arahan berisi informasi kontekstual tentang bagaimana seharusnya dieksekusi: deskripsi tekstual dari tugas tersebut (description), jika modul pratinjau diterima dari PowerShell Gallery (allowPrerelease) dan securityContext yang menunjukkan apakah eksekusi tersebut memerlukan hak akses yang lebih tinggi.

Saat Anda meletakkan konteks keamanan: ditingkatkanWinGet akan meminta izin administrator sekali di awal pengaturan dan setelah itu akan dapat menjalankan sumber daya dengan hak akses administrator dan non-administrator menggunakan proses yang berbeda, tanpa membanjiri Anda dengan lebih banyak jendela UAC.

Bagian Pengaturan menentukan pasangan nama-nilai. yang diteruskan ke sumber daya DSC. Ini bisa berupa sesuatu yang sesederhana DeveloperMode: true untuk mengaktifkan mode pengembang Windows, atau parameter yang lebih kompleks seperti id y source dari paket WinGet, jalur ke file .vsconfig, nilai registri tertentu, atau detail layanan yang perlu diaktifkan.

Akhirnya, bidang tersebut tergantung pada Ini memungkinkan Anda untuk menyatakan bahwa sumber daya ini hanya boleh dieksekusi ketika pernyataan atau sumber daya sebelumnya telah berhasil diselesaikan. Jika salah satu ketergantungan tersebut gagal, sumber daya secara otomatis ditandai sebagai tidak dieksekusi atau gagal, sehingga mencegah efek samping yang tidak diinginkan.

Susun bagian sumber daya dengan cara yang mudah dibaca.

Dalam proyek besar, file konfigurasi dapat menjadi sangat besar, jadi ada baiknya meluangkan waktu untuk membuatnya. Pikirkan sejenak tentang bagaimana Anda mengatur bagian sumber daya. agar tetap mudah dipelihara dari waktu ke waktu.

Strategi umum adalah mengatur sumber daya sesuai dengan urutan eksekusi logis:

  1. Pertama, apa yang disiapkan sistem (pernyataan, pembaruan dasar).
  2. Kemudian alat-alat umum (browser, kompresor, utilitas).
  3. Kemudian IDE dan SDK.
  4. Terakhir, skrip atau pengaturan yang lebih spesifik.

Pendekatan menarik lainnya adalah dengan mengelompokkannya berdasarkan kemungkinan kegagalan atau kompleksitasDengan kata lain, letakkan tugas-tugas yang paling sering mengalami kegagalan (instalasi berat yang bergantung pada koneksi atau kredensial yang baik) di awal, sehingga pengguna menyadari sejak dini bahwa ada sesuatu yang salah tanpa harus menunggu semuanya selesai.

Banyak yang lebih suka mengelompokkan berdasarkan jenis sumber dayaPertama, paket WinGet, kemudian konfigurasi Windows (registri, fitur, layanan), lalu skrip, dan terakhir, alat-alat khusus untuk proyek tertentu. Gaya ini sering kali menyerupai struktur tipikal proyek perangkat lunak dan membantu Anda memahami struktur proyek dengan cepat.

Apa pun kriterianya, sangat disarankan untuk melampirkan berkas tersebut dengan... README di dalam repositori Menjelaskan struktur konfigurasi, dependensi utama, versi Windows minimum yang dibutuhkan, dan langkah-langkah eksekusi yang direkomendasikan.

Dokumentasi itu membuat agar Pengembang lain dapat berkontribusi pada arsip dengan risiko yang lebih rendah. untuk merusak sesuatu, karena mereka lebih memahami fungsi setiap blok dan pernyataan atau ketergantungan apa yang berlaku sebelum menambahkan sumber daya baru.

Menggunakan variabel ${WinGetConfigRoot} dalam jalur file

Banyak sumber daya DSC menerima parameter yang diharapkan. jalur ke file tertentuKonfigurasi Visual Studio, skrip, templat, dll. Jika Anda menggunakan jalur absolut, file Anda akan kehilangan portabilitasnya segera setelah Anda mengganti pengguna, drive, atau folder.

Untuk mencegah hal ini, WinGet memperkenalkan variabel tersebut. ${WinGetConfigRoot}, yang mengarah ke direktori tempat Anda menjalankan program. winget configureDari situ Anda dapat membuat jalur relatif yang akan berfungsi sama di komputer mana pun yang menggunakan struktur folder yang sama.

Jika, misalnya, Anda menyimpan file konfigurasi di .config/configuration.winget dan file tersebut .vsconfig Di direktori root repositori, Anda dapat menggunakan jalur seperti ini: '${WinGetConfigRoot}\..\.vsconfig'Bagian itu .. Naik satu tingkat dari folder kerja dan Anda akan langsung masuk ke direktori tempat file .vsconfig berada.

Teknik ini membuat agar Konfigurasi yang sama berlaku untuk semua anggota tim. yang mengkloning proyek ke jalur yang berbeda, selama mereka menghormati penempatan relatif file di dalam repositori.

Namun, perlu diingat dalam README bahwa Pengguna harus memastikan bahwa file target tersebut ada. pada jalur relatif yang mengharapkan konfigurasi sebelum menjalankan winget configure, atau eksekusi akan menandai kesalahan pada sumber daya tersebut.

Di mana menemukan modul DSC dan sumber daya siap pakai?

Agar seluruh sistem ini berfungsi, WinGet bergantung pada Modul PowerShell yang mengimplementasikan sumber daya DSCBeberapa di antaranya sudah tersedia "secara default" bersama sistem itu sendiri (yang disebut sumber daya bawaan) dan yang lainnya diperoleh dari PowerShell Gallery.

Di antara sumber daya standar yang Anda miliki, terdapat modul untuk dikelola. variabel lingkungan, menginstal atau menghapus paket MSI (msiPackage), memanipulasi kunci dan nilai registri (Registry), menjalankan blok skrip (Script), mengontrol layanan Windows (Service), menambah atau menghapus peran dan fitur (WindowsFeature), atau memulai dan menghentikan proses (WindowsProcess).

La PowerShell Gallery berisi ratusan modul tambahan. dengan sumber daya DSC yang disumbangkan oleh komunitas. Anda dapat menggunakan filter pencarian untuk hanya menampilkan yang ditandai sebagai "Sumber Daya DSC" dan dengan demikian menemukan komponen yang dapat digunakan kembali untuk konfigurasi Anda.

Namun, penting untuk diingat bahwa galeri ini bukanlah lingkungan yang sepenuhnya diaudit: Siapa pun dapat menerbitkan modul.dan beberapa di antaranya mungkin mengandung skrip yang berisiko atau bahkan berbahaya jika tidak ditinjau dengan cermat.

Oleh karena itu, Microsoft bersikeras bahwa asal usul dan isi modul sebelum menggunakannya dalam konfigurasi yang akan dijalankan pada mesin produksi, terutama jika sumber daya tersebut berjalan dengan konteks keamanan yang tinggi.

Untuk melihat contoh konkret file konfigurasi, Microsoft menyediakan sebuah Repositori konfigurasi DSC WinGet dan YAML Dapat diakses melalui tautan singkat https://aka.ms/dsc.yaml, di mana Anda dapat menemukan inspirasi dan menggunakan templat yang sudah diuji sebagai dasar.

Kebijakan keamanan, kepercayaan, dan grup terkait WinGet

Karena WinGet dan DSC dapat menginstal dan mengkonfigurasi perangkat lunak secara massalAspek keamanan sangat mendasar, terutama di lingkungan perusahaan di mana terdapat persyaratan kepatuhan yang cukup ketat.

WinGet terintegrasi dengan Microsoft Store melalui Origin. msstore dan menggunakan teknik-teknik penyematan sertifikat untuk memverifikasi bahwa sertifikat HTTPS Toko tersebut sesuai dengan salah satu sertifikat yang dikenal dan dengan demikian mencegah serangan man-in-the-middle (MITM).

Pada organisasi yang menggunakan firewall dengan inspeksi SSL, perilaku ini dapat menyebabkan masalah jika perangkat keamanan mengemas ulang koneksi dengan sertifikatnya sendiri. Untuk kasus seperti itu, ada kebijakan yang disebut LewatiPemasangan SertifikatUntukMicrosoftStore yang memungkinkan Anda menentukan apakah WinGet harus melewati pemeriksaan tersebut.

Opsi yang mungkin termasuk membiarkan kebijakan tidak dikonfigurasi (menghormati perilaku default yang direkomendasikan), mengaktifkannya sehingga WinGet Jangan validasi sertifikat Toko atau menonaktifkannya secara eksplisit untuk memaksanya hanya menerima sertifikat Microsoft yang dikenal.

Nonaktifkan penambatan sertifikat meningkatkan risiko serangan man-in-the-middleOleh karena itu, hal ini hanya boleh dilakukan dengan pengetahuan penuh tentang fakta-fakta dan ketika tidak ada alternatif yang masuk akal, serta menyesuaikannya dengan strategi keamanan secara keseluruhan.

Selain arahan ini, terdapat templat kebijakan grup khusus WinGet (.admx dan .adml) yang memungkinkan administrator mengontrol sumber yang diizinkan atau diblokir, mengaktifkan atau menonaktifkan fitur eksperimental, menentukan perilaku terhadap proxy. dan, secara umum, membentuk bagaimana pengelola paket berperilaku di dalam organisasi.

Templat-templat ini didistribusikan di dalam paket. DesktopAppInstallerPolicies.zip di repositori GitHub WinGet. Setelah didekompresi, file-file tersebut disalin ke C:\Windows\PolicyDefinitions Folder bahasa yang bersangkutan kini tersedia, sehingga dapat dikelola dari konsol manajemen kebijakan grup.

Terdapat juga objek kebijakan grup seperti EnableWindowsPackageManagerConfiguration dan EnableWindowsPackageManagerConfigurationExplanation yang memungkinkan pemblokiran penggunaan file konfigurasi WinGet di seluruh organisasi, jika dianggap bahwa fungsi ini harus dibatasi secara ketat.

Repositori tambahan dan penggunaan sumber privat di WinGet

Secara default, WinGet menggunakan sumber-sumber berikut sebagai sumber utamanya: Microsoft Store dan repositori komunitas di GitHubdi mana Anda dapat menemukan manifest untuk banyak program populer: browser, perangkat lunak pengembangan, alat desain, berbagai utilitas, dll.

Namun, banyak perusahaan membutuhkan sesuatu yang lebih: repositori pribadi tempat Anda dapat menghosting aplikasi Anda sendiri, paket internal, versi tervalidasi dari alat-alat tertentu, atau katalog yang difilter yang sesuai dengan kebijakan mereka.

WinGet memungkinkan Anda untuk mendaftarkan sumber tambahan menggunakan perintah:

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

Asal usul ini biasanya bertipe REST secara default, meskipun Anda dapat menentukannya dengan --type Jika Anda membutuhkannya. Selain itu, ada parameter seperti... –tingkat kepercayaan untuk menentukan tingkat kepercayaan (tidak ada atau dipercaya) dan –menerima-perjanjian-sumber untuk secara otomatis menerima perjanjian lisensi sumber, yang sangat penting saat mengotomatiskan penggabungan repositori.

Untuk memeriksa font apa saja yang saat ini terpasang di komputer Anda, Anda dapat menjalankan perintah berikut:

winget source list

Perintah ini akan mengembalikan semua sumber yang tersedia beserta nama dan tipenya. Mulai saat itu, pencarian dan instalasi WinGet akan mempertimbangkan repositori tambahan sesuai dengan pengaturan yang telah Anda konfigurasi.

Ada proyek-proyek yang menawarkan Solusi siap pakai untuk repositori WinGet pribadi di Azure atau instalasi lokal menggunakan Docker, yang menawarkan fleksibilitas yang cukup besar saat menyiapkan katalog perusahaan atau lingkungan terkontrol di mana hanya perangkat lunak yang disetujui TI yang ada.

Dalam praktiknya, menggabungkan repositori pribadi dengan file konfigurasi YAML yang dirancang dengan baik memungkinkan menstandarkan sepenuhnya konfigurasi perangkat lunak dan peralatan. dari sebuah perusahaan, dengan ketenangan pikiran bahwa semuanya berasal dari sumber yang Anda kendalikan sendiri.

Dengan semua hal di atas, WinGet, file konfigurasi YAML-nya, dan sumber daya DSC mengubah tugas membosankan dalam mempersiapkan dan memelihara PC Windows menjadi sebuah proses yang mudah. jauh lebih cepat, dapat diulang, dan lebih amanBaik Anda seorang pengembang yang ingin mengkloning lingkungan Anda di beberapa komputer atau Anda mengelola sejumlah besar komputer di suatu organisasi dan ingin berhenti melakukan semuanya secara manual.