Förutom att installera apppaket från förvaret kan du användaWinGetpakethanterare för deklarativ Windows-miljökonfiguration. Tanken är att administratören skapar en deklarativ YAML-fil som beskriver önskat tillstånd för datorn, inklusive Windows-inställningar och nödvändig programvara. Sedan använder WinGet PowerShell Desired State Configuration (DSC) för att automatiskt konfigurera Windows till det specificerade tillståndet som definieras i YAML-filen.
WinGet stöder hantering av datorkonfiguration via DSC från och med version 1.6.2631 (släpptes 2023).
Dewinget configurekommandot använder PowerShell Desired State Configuration (DSC) 3.0, inklusive den nyare Microsoft DSC 3-arkitekturen, för att automatiskt konfigurera Windows till det önskade tillståndet som definieras i konfigurationsfilen. YAML-konfigurationsfilen beskriver deklarativt det systemtillstånd som krävs, inklusive programinstallationer eller borttagningar med deras versioner, Windows-funktioner och roller att lägga till eller ta bort, och nödvändiga Windows- och programinställningar. Genom att använda denna YAML-fil automatiseras distributionen av miljön på en Windows-arbetsstation eller -server.
Låt oss nu ta en titt på en enkel YAML-konfigurationsfil för Winget. Min exempelkonfiguration används för att installera flera appar (Firefox, Notepad++ och PowerToys) och ta bort 7-Zip om den är installerad. Den gör också ändringar i registret (möjliggör säkerhetskopiering av Windows-registret med hjälp avEnablePeriodicBackupalternativ).
Microsoft Store-appar kan installeras/ta bort med deras app-ID:n. Till exempel, för att få PowerToys app-ID, kör:
winget show powertoys -s msstore

Kommandot för att hitta apppaketnamn i Winget:
winget search appname
eller bland installerade appar:
winget list
Du kan hitta ett exempel på en sådan YAML-fil i vårt GitHub-förrådhttps://github.com/maxbakhub/winposh/blob/main/DSC/winget_configure_dsc_sample_win11.yaml


Låt oss nu försöka tillämpa konfigurationen från denna YAML-fil via winget-konfiguration. Aktivera först DSC-stöd i WinGet:
winget configure --enable


Innan du använder DSC-konfigurationen, rekommenderas det att validera syntaxen för YAML-filen.
winget configure validate winget_configure_dsc_sample_win11.yaml
Precis som Python använder YAML-filer indrag för att definiera struktur. De förlitar sig på mellanslag snarare än tabbar för att representera kapslade datablock.
Applicera nu konfigurationen från YAML-filen på datorn.
winget configure --file winget_configure_dsc_sample_win11.yaml --accept-configuration-agreements


WinGet läser inställningarna från YAML-filen, installerar/tar bort de beskrivna apparna och tillämpar de angivna Windows-inställningarna (denConfigurationRemotingServer.exeprocess analyserar YAML-filen och tillämpar inställningarna). Med bara ett kommando får du alltså en fullt konfigurerad Windows-miljö. En detaljerad logg över de tillämpade DSC-inställningarna visas på skärmen.
Utför en torrkörning för att se hur din dators nuvarande konfiguration matchar YAML-filen.
winget configure test -f winget_configure_dsc_sample_win11.yaml --accept-configuration-agreements
För alla objekt som inte matchar den önskade konfigurationen kommer kommandot att returnera:
Läs mer:Hur man automatiserar mötessammanfattningar i Slack med hjälp av AI
System is not in the described configuration state.


När du återapplicerar YAML-konfigurationsfilen kommer Winget Configure endast att tillämpa ändringar som skiljer sig från den önskade konfigurationen.
DesecurityContext: elevateddirektiv innebär att en engångsuppmaning om användarkontokontroll (UAC) krävs för att tillämpa vissa systemkonfigurationsinställningar.
Med WinGet kan du ange en YAML-konfigurationsfil som finns på en extern webbsida som källa för konfiguration (detta gör att distributionen av de önskade tillståndskonfigurationerna kan automatiseras 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 tillåter administratörer att konfigurera Windows-datorer till ett specifikt tillstånd med hjälp av deklarativa YAML-filer, vilket säkerställer konfigurationens idempotens och stödjer Infrastructure as Code (IaC)-metoden för Windows-miljöhantering. WinGet med DSC låter dig implementera en Ansible-playbook-motsvarighet för Windows-enheter, vilket möjliggör deklarativ, automatiserad konfigurationshantering.














