
En plus d’installer des packages d’applications à partir du référentiel, vous pouvez utiliser le gestionnaire de packages WinGet pour la configuration déclarative de l’environnement Windows. L’idée est que l’administrateur crée un fichier YAML déclaratif décrivant l’état souhaité de l’ordinateur, y compris les paramètres Windows et les logiciels requis. Ensuite, WinGet utilise PowerShell Desired State Configuration (DSC) pour configurer automatiquement Windows à l’état spécifié défini dans le fichier YAML.
WinGet prend en charge la gestion de la configuration de l’ordinateur via DSC à partir de la version 1.6.2631 (publiée en 2023).
La commande winget configure utilise PowerShell Desired State Configuration (DSC) 3.0, y compris la nouvelle architecture Microsoft DSC 3, pour configurer automatiquement Windows à l’état souhaité défini dans le fichier de configuration. Le fichier de configuration YAML décrit de manière déclarative l’état du système requis, y compris les installations ou suppressions de programmes avec leurs versions, les fonctionnalités et rôles Windows à ajouter ou à supprimer, ainsi que les paramètres Windows et d’application nécessaires. L’application de ce fichier YAML automatisera le déploiement de l’environnement sur un poste de travail ou un serveur Windows.
Jetons maintenant un coup d’œil à un simple fichier de configuration YAML pour Winget. Mon exemple de configuration permettait d’installer plusieurs applications (Firefox, Notepad++ et PowerToys) et de supprimer 7-Zip s’il est installé. Il apporte également des modifications au registre (active la sauvegarde du registre Windows à l’aide de l’option « EnablePeriodicBackup »).
Les applications du Microsoft Store peuvent être installées/supprimées par leurs identifiants d’application. Par exemple, pour obtenir l’ID de l’application PowerToys, exécutez :
winget show powertoys-s msstore

La commande pour trouver les noms des packages d’applications dans Winget :
nom de l'application de recherche Winget
ou parmi les applications installées :
liste des ailes
Vous pouvez trouver un exemple d’un tel fichier YAML dans notre référentiel GitHub https://github.com/maxbakhub/winposh/blob/main/DSC/winget_configure_dsc_sample_win11.yaml

Essayons maintenant d’appliquer la configuration de ce fichier YAML via winget configure. Tout d’abord, activez la prise en charge DSC dans WinGet :
winget configurer--activer

Avant d’appliquer la configuration DSC, il est recommandé de valider la syntaxe du fichier YAML.
winget configure valider winget\_configure\_dsc\_sample\_win11.yaml
Comme Python, les fichiers YAML utilisent l’indentation pour définir la structure. Ils s’appuient sur des espaces plutôt que sur des tabulations pour représenter des blocs de données imbriqués.
Maintenant, appliquez la configuration du fichier YAML à l’ordinateur.
winget configure--file winget\_configure\_dsc\_sample\_win11.yaml--accept-configuration-agreements

WinGet lit les paramètres du fichier YAML, installe/supprime les applications décrites et applique les paramètres Windows spécifiés (le processus ConfigurationRemotingServer.exe analyse le fichier YAML et applique les paramètres). Ainsi, avec une seule commande, vous obtenez un environnement Windows entièrement configuré. Un journal détaillé des paramètres DSC appliqués apparaîtra à l’écran.
Effectuez un essai à sec pour voir comment la configuration actuelle de votre ordinateur correspond au fichier YAML.
winget configure test-f winget\_configure\_dsc\_sample\_win11.yaml--accept-configuration-agreements
Pour tous les éléments qui ne correspondent pas à la configuration souhaitée, la commande retournera :
System is not in the described configuration state.

Lorsque vous réappliquez le fichier de configuration YAML, Winget Configure n’appliquera que les modifications différentes de la configuration souhaitée.
La directive securityContext: élevée signifie qu’un message unique
La directive signifie qu’une invite unique d’élévation du contrôle de compte d’utilisateur (UAC) est requise pour appliquer certains paramètres de configuration du système.
Avec WinGet, vous pouvez spécifier un fichier de configuration YAML situé sur une page Web externe comme source de configuration (cela permet d’automatiser le déploiement des configurations d’état souhaitées via GitHub/GitLab).
winget configure--accept-configuration-agreements--disable-interactivity-f https://raw.githubusercontent.com/maxbakhub/winposh/refs/heads/main/DSC/winget\_configure\_dsc\_sample\_win11.yaml

WinGet permet aux administrateurs de configurer les machines Windows dans un état spécifique à l’aide de fichiers YAML déclaratifs, garantissant l’idempotence de la configuration et prenant en charge l’approche Infrastructure as Code (IaC) pour la gestion de l’environnement Windows. WinGet avec DSC vous permet d’implémenter un équivalent Ansible-playbook pour les appareils Windows, permettant une gestion déclarative et automatisée de la configuration.
*️⃣ Lien source :
Le gestionnaire de packages WinGet permet la sauvegarde du registre Windows, https://github.com/maxbakhub/winposh/blob/main/DSC/winget_configure_dsc_sample_win11.yaml, , invite d’élévation du contrôle de compte d’utilisateur (UAC),