Automatizza la distribuzione di software e impostazioni con WinGet Configure (DSC)

Oltre a installare i pacchetti dell'app dal repository, puoi utilizzare il fileWinGetgestore di pacchetti per la configurazione dichiarativa dell'ambiente Windows. L'idea è che l'amministratore crei un file YAML dichiarativo che descriva lo stato desiderato del computer, comprese le impostazioni di Windows e il software richiesto. Quindi, WinGet usa PowerShell Desired State Configuration (DSC) per configurare automaticamente Windows sullo stato specificato definito nel file YAML.

WinGet supporta la gestione della configurazione del computer tramite DSC a partire dalla versione 1.6.2631 (rilasciata nel 2023).

ILwinget configureIl comando utilizza PowerShell Desired State Configuration (DSC) 3.0, inclusa la più recente architettura Microsoft DSC 3, per configurare automaticamente Windows sullo stato desiderato definito nel file di configurazione. Il file di configurazione YAML descrive in modo dichiarativo lo stato del sistema richiesto, comprese le installazioni o rimozioni dei programmi con le relative versioni, le funzionalità e i ruoli di Windows da aggiungere o rimuovere e le impostazioni necessarie di Windows e delle applicazioni. L'applicazione di questo file YAML automatizzerà la distribuzione dell'ambiente su una workstation o un server Windows.

Ora diamo un'occhiata a un semplice file di configurazione YAML per Winget. La mia configurazione di esempio prevedeva l'installazione di diverse app (Firefox, Notepad++ e PowerToys) e la rimozione di 7-Zip se installato. Apporta inoltre modifiche al registro (abilita il backup del registro di Windows utilizzando il fileEnablePeriodicBackupopzione).

Le app di Microsoft Store possono essere installate/rimosse tramite i relativi ID app. Ad esempio, per ottenere l'ID dell'app PowerToys, esegui:

winget show powertoys -s msstore

Il comando per trovare i nomi dei pacchetti dell'app in Winget:

winget search appname

o tra le app installate:

winget list

Puoi trovare un esempio di tale file YAML nel nostro repository GitHubhttps://github.com/maxbakhub/winposh/blob/main/DSC/winget_configure_dsc_sample_win11.yaml

Ora proviamo ad applicare la configurazione da questo file YAML tramite Winget Configure. Innanzitutto, abilita il supporto DSC in WinGet:

winget configure --enable

Prima di applicare la configurazione DSC, si consiglia di convalidare la sintassi del file YAML.

winget configure validate winget_configure_dsc_sample_win11.yaml

Come Python, i file YAML utilizzano il rientro per definire la struttura. Si basano sugli spazi anziché sulle tabulazioni per rappresentare i blocchi di dati nidificati.

Ora applica la configurazione dal file YAML al computer.

winget configure --file winget_configure_dsc_sample_win11.yaml --accept-configuration-agreements

WinGet legge le impostazioni dal file YAML, installa/rimuove le app descritte e applica le impostazioni di Windows specificate (ilConfigurationRemotingServer.exeprocesso analizza il file YAML e applica le impostazioni). Pertanto, con un solo comando, ottieni un ambiente Windows completamente configurato. Sullo schermo verrà visualizzato un registro dettagliato delle impostazioni DSC applicate.

Esegui un test per vedere come la configurazione attuale del tuo computer corrisponde al file YAML.

winget configure test -f winget_configure_dsc_sample_win11.yaml --accept-configuration-agreements

Per tutti gli elementi che non corrispondono alla configurazione desiderata, il comando restituirà:

Per saperne di più:Come automatizzare i riepiloghi delle riunioni in Slack utilizzando l'intelligenza artificiale

System is not in the described configuration state.

Quando riapplichi il file di configurazione YAML, Winget Configure applicherà solo le modifiche che differiscono dalla configurazione desiderata.

ILsecurityContext: elevateddirettiva significa che è necessaria una richiesta di elevazione del Controllo dell'account utente (UAC) una tantum per applicare determinate impostazioni di configurazione del sistema.

Con WinGet, è possibile specificare un file di configurazione YAML situato su una pagina Web esterna come origine per la configurazione (questo consente di automatizzare la distribuzione delle configurazioni di stato desiderate tramite 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 consente agli amministratori di configurare le macchine Windows su uno stato specifico utilizzando file YAML dichiarativi, garantendo l'idempotenza della configurazione e supportando l'approccio Infrastructure as Code (IaC) alla gestione dell'ambiente Windows. WinGet con DSC ti consente di implementare un equivalente playbook Ansible per i dispositivi Windows, consentendo una gestione dichiarativa e automatizzata della configurazione.

Related Posts