Automatize a implantação de software e configurações com WinGet Configure (DSC)

Além de instalar pacotes de aplicativos do repositório, você pode usar oWinGetgerenciador de pacotes para configuração declarativa do ambiente Windows. A ideia é que o administrador crie um arquivo YAML declarativo descrevendo o estado desejado do computador, incluindo as configurações do Windows e o software necessário. Em seguida, o WinGet usa o PowerShell Desired State Configuration (DSC) para configurar automaticamente o Windows para o estado especificado definido no arquivo YAML.

WinGet oferece suporte ao gerenciamento de configuração do computador via DSC a partir da versão 1.6.2631 (lançada em 2023).

Owinget configureO comando usa o PowerShell Desired State Configuration (DSC) 3.0, incluindo a arquitetura Microsoft DSC 3 mais recente, para configurar automaticamente o Windows para o estado desejado definido no arquivo de configuração. O arquivo de configuração YAML descreve declarativamente o estado necessário do sistema, incluindo instalações ou remoções de programas com suas versões, recursos e funções do Windows para adicionar ou remover e as configurações necessárias do Windows e do aplicativo. A aplicação deste arquivo YAML automatizará a implantação do ambiente em uma estação de trabalho ou servidor Windows.

Agora, vamos dar uma olhada em um arquivo de configuração YAML simples para Winget. Minha configuração de exemplo usada para instalar vários aplicativos (Firefox, Notepad++ e PowerToys) e remover o 7-Zip se estiver instalado. Ele também faz alterações no registro (permite o backup do registro do Windows usando oEnablePeriodicBackupopção).

Os aplicativos da Microsoft Store podem ser instalados/removidos por seus IDs de aplicativo. Por exemplo, para obter o ID do aplicativo PowerToys, execute:

winget show powertoys -s msstore

O comando para encontrar nomes de pacotes de aplicativos no Winget:

winget search appname

ou entre aplicativos instalados:

winget list

Você pode encontrar uma amostra desse arquivo YAML em nosso repositório GitHubhttps://github.com/maxbakhub/winposh/blob/main/DSC/winget_configure_dsc_sample_win11.yaml

Agora, vamos tentar aplicar a configuração deste arquivo YAML via winget configure. Primeiro, habilite o suporte DSC no WinGet:

winget configure --enable

Antes de aplicar a configuração DSC, recomenda-se validar a sintaxe do arquivo YAML.

winget configure validate winget_configure_dsc_sample_win11.yaml

Assim como o Python, os arquivos YAML usam recuo para definir a estrutura. Eles contam com espaços em vez de tabulações para representar blocos de dados aninhados.

Agora, aplique a configuração do arquivo YAML ao computador.

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

WinGet lê as configurações do arquivo YAML, instala/remove os aplicativos descritos e aplica as configurações especificadas do Windows (oConfigurationRemotingServer.exeprocesso analisa o arquivo YAML e aplica as configurações). Assim, com apenas um comando, você obtém um ambiente Windows totalmente configurado. Um registro detalhado das configurações DSC aplicadas aparecerá na tela.

Execute uma simulação para ver como a configuração atual do seu computador corresponde ao arquivo YAML.

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

Para todos os itens que não correspondem à configuração desejada, o comando retornará:

Leia mais:Como automatizar resumos de reuniões no Slack usando IA

System is not in the described configuration state.

Ao reaplicar o arquivo de configuração YAML, o Winget Configure aplicará apenas alterações que diferem da configuração desejada.

OsecurityContext: elevateddiretiva significa que um prompt único de elevação do Controle de Conta de Usuário (UAC) é necessário para aplicar determinadas configurações do sistema.

Com o WinGet, você pode especificar um arquivo de configuração YAML localizado em uma página da Web externa como fonte de configuração (isso permite que a implantação das configurações de estado desejadas seja automatizada por meio do 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

O WinGet permite que os administradores configurem máquinas Windows para um estado específico usando arquivos YAML declarativos, garantindo a idempotência da configuração e oferecendo suporte à abordagem Infraestrutura como Código (IaC) para o gerenciamento do ambiente Windows. WinGet com DSC permite implementar um manual Ansible equivalente para dispositivos Windows, permitindo gerenciamento de configuração declarativo e automatizado.

Related Posts