Automatize a instalação de programas no Windows com o Chocolatey

 Por Ciro Mota |  28, Maio 2020 |  Tempo de leitura aproximadamente 4 minutos.

Fala pessoal, tudo bem com vocês? Espero que sim!

Eu tenho como filosofia que a tecnologia precisa trabalhar para nós e não nós trabalharmos para a tecnologia. Confuso? Explico. O que é melhor, automatizar uma tarefa para que a mesma seja feita com pouca intervenção ou a mesma tarefa feita com um processo maçante/repetitivo? Então não precisamos “reinventar a roda” para deixar um ambiente ainda mais produtivo.

Se nas distros Linux com a ajuda dos repositórios, Flatpaks e Snaps, nós conseguimos com um simples Shell Script deixar tudo pronto para uso, o mesmo nós não podemos dizer dos sistemas Windows onde apesar do “Avançar -> Avançar…” ainda temos a tarefa de nos direcionar ao site oficial das aplicações e realizar o download.

No artigo sobre como integrar as atualizações do Windows à sua mídia de instalação eu comento sobre como pode ser útil a adição dos pacotes de atualização na imagem de instalação, mas e os programas que são utilizados no dia a dia de uma empresa/escritório ou nosso PC doméstico por exemplo? A própria ferramenta utilizada para integrar as atualizações e citada no artigo que me refiro, a NTLite, possui a funcionalidade de também integrar alguns programas na imagem de instalação. Neste artigo apresentarei outra alternativa para um pós-instalação mais eficiente (deverei abordar outra em breve).

Aqui através de uma ferramenta Open Source onde tudo funcionará através de um simples arquivo .bat, usaremos aqui a ferramenta Chocolatey. O nome não é dos mais comuns mas temos aqui uma ferramenta com muito potencial e que sem dúvida pode ser útil no nosso dia a dia. O ou A Chocolatey trás um pouco do que é o Shell Script para o Windows, permitindo a instalação de programas de forma bem simplificada como no Linux.

A instalação do Chocolatey assim como ele próprio também é simplificada, bastando apenas rodar uma linha de comando em uma janela do PowerShell e feito, estará instalado. Utilizei uma VM limpa como teste:

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

OBS: Em uma instalação do Windows recém concluída, pode ser que o PowerShell não tenha o modo Get-ExecutionPolicy como Restricted configurado, então a execução padrão do comando de instalação funcionará. Caso a execução da linha de comando falhe devido a essa restrição você deverá desabilitar o modo Restricted temporariamente antes de executar a instalação do Chocolatey. Para mais opções de instalação em cenários diferentes, consulte a sua documentação neste link

Ao final, da execução, teremos o Chocolatey instalado e precisaremos sobre brincar com os scripts de instalação.

A montagem de um script de instalação é extremamente simples, bastando adicionar as linhas correspondentes aos programas que queremos e formatos são possíveis. A lista de pacotes é imensa e estão disponíveis neste link:
https://community.chocolatey.org/packages

Há também algumas atualizações Windows e demais softwares, o que é bom para um ambiente de homologação em que as atualizações precisam ser testadas antes de serem instaladas.

No exemplo abaixo, usei o Chrome, o 7Zip, o Foxit PDF Reader, o LibreOffice e o Avira como exemplos, programas que são comumente usados no dia a dia e todos eles gratuitos.

choco install googlechrome -y  
choco install 7zip.install -y  
choco install foxitreader -y  
choco install libreoffice-fresh -y  
choco install avirafreeantivirus -y

Salve no Bloco de Notas como um arquivo .bat e execute-o em uma janela do PowerShell.

O “-y” aqui compreende a mesma funcionalidade que no terminal Linux, ou seja, instalação sem confirmação. Caso deseje mais opções de comando para customizar mais as instalações, execute o comando choco -h ou através do link abaixo:
https://docs.chocolatey.org/en-us/create/commands/push

O Firefox acaba sendo um caso à parte quando se trata de instalação, caso nós não baixemos especificamente a sua versão para o idioma escolhido (pt-br no nosso caso) o download assume a versão em inglês como padrão. Partindo dessa premissa e caso desejemos instalar o Firefox com o Chocolatey podemos passar na linha de comando um atributo para que o download seja efetuado em pt-br.

choco install Firefox --params "/l:pt-BR /RemoveDistributionDir" -y

Consulte a documentação do pacote com o Chocolatey para verificar se ele também possui a disponibilidade de adição dos parâmetros de locale.

Sei que algumas empresas utilizam programas próprios ou antigos, esses programas certamente não estão na base de dados do Chocolatey, para contornar isso é possível criar seus próprios pacotes de instalação. Consultem a documentação para maiores detalhes. https://docs.chocolatey.org/en-us/create/create-packages

Preocupações referentes a segurança? Como podem ver na imagem logo acima, os downloads são realizados diretamente dos desenvolvedores da aplicação, o Chocolatey atua somente como um intermediário para a instalação desses programas. E com relação ao próprio Chocolatey, por ser um projeto Open Source, nós podemos acompanhar todo o desenvolvimento através do GitHub e isso nos dá alguma segurança do que está sendo feito.

Espero que seja uma ferramenta útil e que ajude na produtividade do dia a dia de quem precisa reinstalar muitos PCs simultaneamente.