Sabia como manter seu parque windows atualizado com custo ZERO
O winget é uma ferramenta de gerenciamento de pacotes da Microsoft que automatiza a instalação, atualização e desinstalação de softwares no Windows. Ele facilita o gerenciamento de aplicativos via linha de comando, centralizando e simplificando a manutenção do sistema.
O winget
, também conhecido como Windows Package Manager, é uma ferramenta de gerenciamento de pacotes da Microsoft, lançada oficialmente em 2020, que facilita a instalação, atualização e gerenciamento de aplicativos no Windows. Ele funciona de maneira semelhante a gerenciadores de pacotes em outros sistemas operacionais, como o apt
no Linux ou o brew
no macOS. A ideia principal é automatizar a instalação de softwares e manter o sistema atualizado com o mínimo de esforço.
Principais Funcionalidades do winget
:
- Instalação de Pacotes: O
winget
permite instalar softwares diretamente de repositórios online. Por exemplo, para instalar o Google Chrome, basta executar:
winget install Google.Chrome
O winget
busca o pacote no repositório oficial e executa a instalação automaticamente, sem necessidade de downloads manuais ou de navegar por instaladores gráficos.
- Atualização de Pacotes: O comando
winget upgrade
lista todos os pacotes que têm uma versão mais recente disponível. Você pode então atualizar pacotes específicos ou todos de uma vez:
winget upgrade --all
- Desinstalação de Pacotes: Assim como na instalação, o
winget
também permite desinstalar aplicativos de forma rápida e direta:
winget uninstall <nome-do-aplicativo>
- Pesquisa de Pacotes: Se você não tem certeza do nome exato de um software, pode pesquisá-lo no repositório de pacotes:
winget search <nome-parcial-do-aplicativo>
- Gerenciamento de Repositórios: Por padrão, o
winget
usa o repositório da Microsoft, mas também suporta múltiplos repositórios, permitindo que empresas e desenvolvedores adicionem seus próprios repositórios privados.
Arquitetura
O winget
funciona com base em manifestos, que são arquivos contendo informações sobre os pacotes (nome, versão, URL, etc.). Esses manifestos são armazenados em repositórios públicos ou privados, que o winget
utiliza para buscar os pacotes. A Microsoft mantém um repositório público de manifestos no GitHub, onde desenvolvedores podem enviar seus próprios manifestos para disponibilizar seus aplicativos através do winget
.
Vantagens do winget
:
- Automatização: O
winget
automatiza o processo de instalação e atualização de aplicativos, eliminando a necessidade de baixar e executar instaladores manualmente. - Centralização: Com o
winget
, você pode gerenciar todos os seus aplicativos a partir de uma única ferramenta, o que simplifica a manutenção e a organização do sistema. - Integração com o Sistema: Como é uma ferramenta oficial da Microsoft, ele é bem integrado ao Windows, tornando-o seguro e confiável para automação e gerenciamento de software em ambientes corporativos.
Comandos Principais:
winget install <pacote>
: Instala um software.winget upgrade <pacote>
: Atualiza um software específico.winget upgrade --all
: Atualiza todos os softwares instalados que possuem uma nova versão disponível.winget list
: Lista todos os pacotes instalados no sistema.winget uninstall <pacote>
: Remove um software.winget search <termo>
: Pesquisa pacotes disponíveis.winget source
: Gerencia os repositórios de pacotes.
Comparação com Outros Gerenciadores de Pacotes
Enquanto no Linux os gerenciadores de pacotes são essenciais para o funcionamento do sistema (como apt
, yum
, e dnf
), no Windows, o conceito de gerenciador de pacotes é relativamente novo. Até o lançamento do winget
, os usuários do Windows geralmente precisavam baixar instaladores manualmente e seguir os passos de instalação gráficos. Com o winget
, a Microsoft deu um grande passo em direção à automação e à praticidade, semelhante ao que o brew
faz no macOS.
Futuro e Perspectivas
O winget
ainda está em desenvolvimento ativo e novas funcionalidades estão sendo constantemente adicionadas. A comunidade de desenvolvedores também participa ativamente enviando manifestos para novos pacotes no repositório oficial. Essa ferramenta deve se tornar cada vez mais essencial para profissionais de TI que buscam automação em ambientes Windows, especialmente em grandes redes corporativas.
AGORA VAMOS AO QUE INTERESSA!
Para gerenciar atualizações de software remotamente em dispositivos Windows utilizando o winget
, você precisará configurar um ambiente que permita a execução de comandos remotos. Existem várias abordagens para isso, como o uso do PowerShell Remoting, que é ideal para este tipo de tarefa em um ambiente Windows.
Pré-requisitos:
- Windows 10 ou superior: Certifique-se de que os dispositivos que você vai gerenciar estejam rodando uma versão do Windows que suporte o
winget
. - PowerShell 7 ou superior: Recomendado para garantir suporte completo a funcionalidades modernas do PowerShell.
winget
instalado: Owinget
deve estar instalado nos dispositivos. Em sistemas mais recentes, ele já vem por padrão. Caso não esteja, pode ser instalado via Microsoft Store.
Passo a Passo para Configurar e Utilizar o winget
Remotamente
1. Habilitar o PowerShell Remoting no Computador de Origem e Destino
Para se conectar remotamente aos dispositivos, você precisa habilitar o PowerShell Remoting. Isso pode ser feito utilizando o comando Enable-PSRemoting
.
Enable-PSRemoting -Force
Este comando deve ser executado tanto no computador de origem (de onde você vai controlar remotamente) quanto nos dispositivos de destino.
Nota: Este comando habilita o serviço de escuta do PowerShell Remoting, configura regras de firewall e permite a execução de scripts remotos.
2. Configurar o TrustedHosts (opcional)
Se os dispositivos de origem e destino não estiverem no mesmo domínio, pode ser necessário configurar os dispositivos de destino como TrustedHosts.
Execute o seguinte comando no computador de origem:
Set-Item WSMan:\localhost\Client\TrustedHosts -Value "Endereço-IP-do-Destino"
Nota: Substitua
"Endereço-IP-do-Destino"
pelo IP do dispositivo remoto ou utilize"*"
para confiar em todos os hosts, embora isso seja menos seguro.
3. Testar a Conexão Remota com o PowerShell Remoting
Testar a conexão remota pode ser feito com o seguinte comando:
Test-WSMan -ComputerName "Endereço-IP-do-Destino"
Se o teste for bem-sucedido, você está pronto para iniciar o processo de gerenciamento remoto.
4. Executar o Winget Remotamente para Coletar Informações sobre Atualizações Pendentes
Agora que o PowerShell Remoting está habilitado e configurado, você pode iniciar uma sessão remota e executar comandos winget
.
Abra uma sessão remota para o dispositivo de destino:
Enter-PSSession -ComputerName "Endereço-IP-do-Destino" -Credential (Get-Credential)
Uma vez dentro da sessão remota, execute o comando para listar as atualizações pendentes:
winget upgrade
Isso listará todos os pacotes que têm atualizações disponíveis.
5. Executar as Atualizações Remotamente
Para executar as atualizações dos pacotes listados, você pode usar o seguinte comando:
winget upgrade --all
Esse comando atualiza automaticamente todos os pacotes que possuem versões mais recentes disponíveis.
6. Automatizar com Scripts
Você pode criar um script em PowerShell para automatizar todo o processo de verificação e atualização dos pacotes. Aqui está um exemplo simples:
$computers = @("PC1", "PC2", "PC3") # Substitua pelos IPs ou nomes dos PCs
foreach ($computer in $computers) {
Invoke-Command -ComputerName $computer -ScriptBlock {
# Verifica e atualiza os pacotes pendentes
winget upgrade --all
} -Credential (Get-Credential)
}
Este script conecta-se aos computadores listados na variável $computers
, verifica as atualizações e executa-as automaticamente.
Considerações de Segurança
- Credenciais Seguras: Sempre utilize métodos seguros para armazenar e transmitir credenciais. O uso de
Get-Credential
garante que as credenciais não sejam armazenadas em texto plano no script. - Firewall e Políticas de Rede: Certifique-se de que as regras de firewall e as políticas de rede permitem conexões remotas via PowerShell Remoting.
Conclusão
Gerenciar atualizações de software remotamente com o winget
via PowerShell Remoting pode simplificar significativamente a manutenção de múltiplos dispositivos. O processo envolve habilitar o PowerShell Remoting, configurar hosts confiáveis (se necessário), e usar scripts para automatizar a execução do winget
.