sábado, 30 de janeiro de 2010

Script de Atualização para Sistemas Windows

Atualização é um processo muito importante, tanto para segurança de um sistema, quanto para mante-lo funcionando corretamente. Visto a importância deste processo e que geralmente este leva muito tempo para ser realizado, procurei uma maneira de agiliza-lo.

Com a ideia simples de ter os arquivos de atualização armazenados localmente, o que eliminaria o tempo para baixa-los após uma instalação do sistema, e instala-los com o mínimo de interação possível, pois como são vários arquivos seria cansativo o processo de “next, next, finish” em cada um deles, desenvolvi um script que faz a atualização do sistema sem a necessidade de uma conexão com a internet (e claro, é necessário ter os arquivos de atualização).

Onde baixar as atualizações

Perdi muito tempo pesquisando uma maneira fácil de conseguir as atualizações do Windows Update, mas não encontrei nada melhor que o Windows Update Catalog.

Neste site se pode baixar as atualizações, mas o problema é que você deve pesquisar uma a uma e não há filtros para por exemplo exibir somente atualizações do Windows XP. Deve-se pesquisar pelo código da atualização, este pode ser encontrado no Windows Update.

Para montar um pacote de atualizações para o Windows XP SP3, o instalei em uma máquina virtual, entrei no Windows Update e peguei o código de todas as atualizações para então pesquisa-las e baixa-las no Windows Update Catalog (está é a parte chata).


O Script

Após conseguir as atualizações, vamos ao script, que é um pouco demorado, mas após pronto será muito útil, principalmente para técnicos que realizam diversas instalações de algum sistema e precisam atualizá-las o mais rapidamente possível.

No script utilizei os seguintes comandos:
@echo off: desliga o echo dos comandos, ou seja, não os mostra no terminal
echo: echo seguido de algum texto, o mostra na tela.
cd: para entrar em diretórios
nome_do_arquivo.exe: executa um arquivo

Para instalar alguma atualização sem interação do usuário, é preciso utilizar o parâmetro \q (ou \quiet) junto ao comando de execução. Também é importante adicionar o parâmetro \norestart para impedir que alguma atualização reinicie o computador.

Para ver os parâmetros disponíveis para certo arquivo basta chamá-lo no terminal com o seguinte comando:
nome_do_arquivo.exe /?

Utilizando estes comandos, já é possível criar a lógica do script, que é bem simples: Entrar no diretório de um arquivo de atualização > executá-lo com os parâmetros necessários > sair do diretório > ir para o próximo diretório e repetir o processo.

Exemplo:
echo Windows Media Player 11 //Mostrou o que irá instalar
cd Windows Media Player 11  //Entrou na pasta
X86-pt-br-wmp11-windowsxp-x86-pt-br_29a329f1decd58ba0ebc2cca85c08ebc75fcf4d9.exe /Q //Executou o arquivo com o parâmetro /q
cd .. //voltou ao diretório inicial

//repetiu o processo para o próximo arquivo
echo Microsoft .NET Framework Version 1.1 Portuguese (Brazil)
cd Microsoft .NET Framework Version 1.1 Portuguese (Brazil)
X86-pt-br-dotnetfx_62381ad4caed197b9064662407283e5.exe /Q
X86-pt-br-langpack_cb27a10fdad1d58515a9bd11f8036d4.exe /Q
cd ..

OBS: Em scripts .bat o comentário não é feito com // e sim com REM, só utilizei o // para ficar mais fácil de entender.

Alguns arquivos que precisam aceitar uma licença, como o Microsoft .NET Framework, ainda precisam de interação, mas são poucos, do pacote de atualização que utilizo, com mais de 400MB são necessárias apenas três interações no começo do script.

Existem alguns programas que realizam essa tarefa, atualizar um sistema sem necessidade de conexão, dos que eu testei nenhum atualizava o sistema por completo e alguns não tinham atualizações em português, por isso acredito que o fazer de acordo com suas necessidades seja a melhor opção.

Abaixo segue um link do script que utilizo em um pacote de atualizações para o Windows XP SP3 e o pacote de atualizações completo que tem certa de 450MB e atualiza o sistema até 29/01/2010.

Script
Pacote (P1 P2 P3 P4 P5)

Nenhum comentário:

Postar um comentário