winget: instale e atualize todos os apps do Windows em segundos

winget: instale e atualize todos os apps do Windows em segundos

Formatar um PC no trabalho e ter que instalar Chrome, 7-Zip, VLC, Visual Studio Code, Notepad++, Git e mais dez programas — um por um, cada um com seu instalador, cada um com o bendito "próximo, próximo, concluir" — é o tipo de coisa que faz qualquer sysadmin perder 40 minutos sem agregar nada. O winget resolve exatamente isso: um comando, todos os programas instalados.

O que é o winget

O winget (Windows Package Manager) é o gerenciador de pacotes oficial da Microsoft, disponível por padrão no Windows 11 e no Windows 10 versão 1709 ou superior. Funciona de forma parecida com o apt no Debian ou o brew no macOS: você busca um pacote por nome, instala com um comando e o sistema cuida do download, da verificação e da instalação — sem pop-ups, sem assistentes gráficos, sem barra de toolbar indesejada embutida no instalador.

O repositório padrão (winget-pkgs) mantém mais de 6.000 pacotes, incluindo os mais usados por desenvolvedores e sysadmins. A Microsoft Store funciona como fonte secundária automaticamente configurada.

Como verificar se o winget está disponível

Abra o PowerShell ou o Prompt de Comando e rode:

winget --version

Se retornar algo como v1.11.x, está pronto para uso. Caso apareça "comando não reconhecido", instale o App Installer pela Microsoft Store ou atualize o Windows para uma build recente — o winget vem embutido a partir do Windows 11 21H2.

Comandos essenciais do dia a dia

Buscar um pacote

winget search vlc

Retorna uma tabela com nome, ID do pacote, versão e fonte. O ID é o que você usa para instalações exatas — evita ambiguidade quando há pacotes com nomes parecidos. Por exemplo: VideoLAN.VLC em vez de só "vlc".

Instalar um ou vários programas

winget install VideoLAN.VLC

Para instalar vários de uma vez na mesma linha:

winget install Google.Chrome Mozilla.Firefox 7zip.7zip Git.Git Microsoft.VisualStudioCode

O winget processa cada pacote em sequência, baixando e instalando sem interação manual.

Listar programas instalados

winget list

Mostra todos os pacotes que o winget reconhece no sistema, com a versão instalada e a versão disponível. Útil para auditar o que está desatualizado antes de rodar o upgrade.

Desinstalar

winget uninstall VideoLAN.VLC

Como atualizar todos os programas do Windows de uma vez?

Use winget upgrade --all. Ele verifica todos os pacotes reconhecidos e atualiza os que têm nova versão disponível — sem precisar abrir nenhum programa manualmente.

Para uso em scripts sem interação do usuário, adicione as flags de automação:

winget upgrade --all --silent --accept-package-agreements --accept-source-agreements
  • --silent — sem janelas gráficas durante a instalação
  • --accept-package-agreements — aceita licenças de uso automaticamente
  • --accept-source-agreements — aceita os termos das fontes configuradas

Execute com privilégios de administrador para atualizar pacotes instalados para todos os usuários da máquina.

Export e Import: migrando seu setup para outro PC

Esse é o recurso menos conhecido do winget e um dos mais úteis na prática. Antes de formatar ou migrar para uma máquina nova, exporte a lista de tudo que está instalado:

winget export -o C:\backup\meus-apps.json

O arquivo JSON gerado lista todos os pacotes reconhecidos pelo winget. No PC novo, depois de instalar o Windows, restaure tudo com:

winget import -i C:\backup\meus-apps.json --accept-package-agreements

O winget instala tudo de uma vez. Programas que não estão no repositório — software corporativo, drivers específicos, aplicações legadas — não entram no JSON e precisam de instalação manual. Mas a maior parte de um setup padrão de desenvolvedor ou analista é coberta sem esforço.

Automatizando as atualizações com o Agendador de Tarefas

Para manter as máquinas sempre atualizadas sem intervenção, crie uma tarefa agendada. Salve o seguinte em C:\Scripts\winget-update.ps1:

winget upgrade --all --silent --accept-package-agreements --accept-source-agreements

No Agendador de Tarefas (Task Scheduler), crie uma tarefa que execute o PowerShell com esse script, com privilégios elevados:

powershell.exe -ExecutionPolicy Bypass -File "C:\Scripts\winget-update.ps1"

Configure para rodar às 3h da manhã de domingo, quando a estação provavelmente está ociosa. Em ambientes com múltiplas estações, dá para distribuir esse script via GPO ou pelo Microsoft Intune.

Se você ainda usa o PowerShell no nível básico, essa tarefa agendada é um ponto de entrada natural para automações reais: um arquivo, uma regra de horário, dezenas de programas mantidos atualizados sem tocar no mouse.

Dicas rápidas

  • Versão específica: winget install Git.Git --version 2.44.0
  • Escopo de instalação: --scope user instala só para o usuário atual; --scope machine para todos
  • Forçar reinstalação: acrescente --force ao install
  • Detalhes de um pacote: winget show Git.Git
  • Incluir pacotes sem versão conhecida no upgrade: --include-unknown

winget ou Chocolatey?

Por muito tempo, o Chocolatey foi o gerenciador de pacotes mais usado no Windows. Ainda tem repositório maior e recursos avançados interessantes para ambientes corporativos. Mas o winget não precisa de instalação adicional no Windows 11, tem suporte oficial da Microsoft e integra com a Microsoft Store. Para uso pessoal e setups de desenvolvimento, o winget cobre o essencial sem dependências externas — e a curva de entrada é menor.

Para sysadmins que querem ir além — hardening de estações antes do deploy, por exemplo — o winget combina bem com as configurações de segurança do Windows 11 que já cobrimos aqui: instalar um sistema limpo com winget e já aplicar as políticas de segurança na mesma sequência é uma rotina que fecha em menos de 30 minutos.

Conclusão

O winget não é novidade — a primeira versão pública saiu em 2020 — mas ainda é subutilizado fora de ambientes de desenvolvimento. Para quem administra múltiplas máquinas Windows, o par winget export + winget import já justifica aprender a ferramenta. E o winget upgrade --all agendado é o tipo de automação simples que elimina uma categoria inteira de tarefas repetitivas sem exigir um script elaborado.

Se quiser ir mais fundo no lado de scripting — encadear o winget com outras automações ou criar relatórios de versão instalada — o ponto de partida natural é o PowerShell 7.6 LTS, que trouxe melhorias relevantes para scripts de automação de infraestrutura.

Comentários