AutoHotkey - automatizando tarefas

Scripts diversos para automatizar tarefas em servidores ou auxilio com tarefas administrativas.
Avatar do usuário
gledson.suzuki
Administrator
Administrator
Mensagens: 3
Registrado em: 25 Jun 2013 13:14
Status: Offline

AutoHotkey - automatizando tarefas

Mensagem por gledson.suzuki »

Bom dia a todos.

Certa vez eu precisava atualizar um plugin do Citrix em todos computadores da empresa, mais de 400 estaçoes. Mas via GPO não estava dando certo.
Depois uma busca na internet encontrei o AutoHotkey.
Software free, na qual, podemos criar scripts e compilar em um arquivo .EXE

Vou demonstrar aqui como fiz o script de atualização do plugin para que todos possam ver o poder desta ferramenta.
Este software utiliza de comandos próprios, que no site voce pode encontrar sua descrição e exemplos.

Se você domina uma linguagem de programação vai ser facil o aprendizado. Não sou programador, mas tenho conhecimento básico.
Para que tudo funcione, primeiro instale o AutoHotkey (http://www.autohotkey.com/).

Desenvolvimento do script

Objetivos:
1. O script, precisa remover o plugin antigo
2. Precisa reiniciar o computador após a remoção
3. Instalar a nova versão.

Para os três pontos criei o script abaixo que em seguida irei explicar cada trecho

FileGetVersion, version, C:\Program Files (x86)\Citrix\ICA Client\concentr.exe
if version = 12.3.0.8
{
exit
}
FileGetVersion, version, C:\Program Files (x86)\Citrix\ICA Client\concentr.exe
if version = 12.1.0.30
{
RunAs, <usuário_adm>, <senha do usuário>, <domínio>
Run, \\Servidor\CitrixOnlinePluginWeb.exe /silent /uninstall, C:\Windows\temp
Process, waitclose, CitrixOnlinePluginWeb.exe

if ErrorLevel = 0
{
Msgbox,4, ATUALIZAÇÃO CITRIX PLUGIN, É NECESSARIO REINICIAR SEU COMPUTADOR PARA COMPLETAR A ATUALIZAÇÃO. DESEJA REINICIAR AGORA ?
ifMsgbox Yes
Run, %comspec% /c shutdown -r -t 00
exit
ifMsgbox No
exit
}
}
IfNotExist, C:\Program Files (x86)\Citrix\ICA Client
Msgbox,48, ATUALIZAÇÃO CITRIX PLUGIN, Aguarde a finalização da instalação do Plugin Citrix Qualquer problema entre em contato com Suporte nos ramais 0000 ou 0001
RunAs, , <usuário_adm>, <senha do usuário>, <domínio>
Run, \\Servidor\Citrix\CitrixOnlinePluginWeb.exe /silent, C:\Windows\temp
Process, waitclose, CitrixOnlinePluginWeb.exe

if ErrorLevel = 0
{
Msgbox,48, ATUALIZAÇÃO CITRIX PLUGIN, Atualização finalizada. Qualquer problema entre em contato com Suporte nos ramais 0000 ou 0000
}



1. O script, precisa remover o plugin antigo
Para atender o primeiro ponto, preciso descobrir qual versão esta instalada no computador, neste caso reparei que os arquivos executáveis continham a versão do software como aparece em Programas e Recursos do Painel de Controle


Imagem


Com estas informações em mãos utilizei o comando FileGetVersion, que captura a a versão do arquivo e guarda em uma variável, neste caso defini como version

FileGetVersion, version, C:\Program Files (x86)\Citrix\ICA Client\concentr.exe

Inseri um If para verificar se a versão era atual ou não

if version = 12.3.0.8
{
exit


Se for igual a 12.3.0.8 ele sai do script, senão ele continua o código

Neste ponto ele volta a verificar se a versão é a antiga, que no meu caso era 12.1.30.
Após isso ele executa com o comando RunAs um usuário com permissão de instalação e usa sua senha. Não se preocupe, pois o usuário não saberá esta senha pois este script sera compilado e ele não terá acesso ao código.

FileGetVersion, version, C:\Program Files (x86)\Citrix\ICA Client\concentr.exe
if version = 12.1.0.30
{
RunAs, <usuário_adm>, <senha do usuário>, <domínio>
Run, \\Servidor\CitrixOnlinePluginWeb.exe /silent /uninstall, C:\Windows\temp
Process, waitclose, CitrixOnlinePluginWeb.exe

if ErrorLevel = 0


O comando seguinte é o Run que executara um executável no caminho que você determinou previamente. No meu caso usei o executável do arquivo de instalação que serviu também para remocao. Os comandos /silent e /uninstall são opções do arquivo do Citrix se  voce for testar outros programas verifiquei quais opções o executável oferece no prompt do DOS.

Na linha  Process, waitclose, CitrixOnlinePluginWeb.exe serve para que o script aguarde o termino do processo. Sem esta linha o script continua o código e gera erros.

A linha seguinte If ErrorLevel = 0 serve para verificação de erro após a execução, não havendo ele continua o código

2. Reiniciando o computador
Esta parte do código é opcional, mas achei melhor para que o usuário informasse se queria reiniciar ou não pois ele poderia estar com algum arquivo em aberto e perderia o trabalho.

Msgbox,4, ATUALIZAÇÃO CITRIX PLUGIN, É NECESSARIO REINICIAR SEU COMPUTADOR PARA COMPLETAR A ATUALIZAÇÃO. DESEJA REINICIAR AGORA ?
ifMsgbox Yes
Run, %comspec% /c shutdown -r -t 00
exit
ifMsgbox No
exit


O comando Msgbox serve para gerar uma caixa de mensagem, o numero corresponde ao tipo de caixa que voce quer, neste caso contem SIM ou NÃO

Em seguida o comando Run executa o comando Shutdown –r –t 00 no DOS,  através da variável %compsec%

3. Instalação do plugin
Após reiniciar ele verifica se existe a pasta C:\Program Files (x86)\Citrix\ICA Client e repete a rotina para desta vez instalar a versão atual.

IfNotExist, C:\Program Files (x86)\Citrix\ICA Client
Msgbox,48, ATUALIZAÇÃO CITRIX PLUGIN, Aguarde a finalização da instalação do Plugin Citrix Qualquer problema entre em contato com Suporte nos ramais 0000 ou 0001
RunAs, , <usuário_adm>, <senha do usuário>, <domínio>
Run, \\Servidor\Citrix\CitrixOnlinePluginWeb.exe /silent, C:\Windows\temp
Process, waitclose, CitrixOnlinePluginWeb.exe

if ErrorLevel = 0
{
Msgbox,48, ATUALIZAÇÃO CITRIX PLUGIN, Atualização finalizada. Qualquer problema entre em contato com Suporte nos ramais 0000 ou 0000
}


Criando GPO
Após finalizar o script precisamos salva-lo com extensão .AHK em seguida compila-lo.
Com o programa já instalado em seu computador basta apenas clicar com o botão direito em cima do arquivo e selecionar a opção Compile Script

Imagem


Depois de compilar ele ira gerar o arquivo .EXE

Imagem


Para aplicar em toda empresa criei uma GPO para que este arquivo seja copiado para os computadores. Testei a execução dele via rede mas o Windows gera uma mensagem perguntando se o usuário permite ou não a execução, uma forma de contornar isso foi a copia para o computador do usuário no perfil publico.

Alem disso na mesma GPO ele executa o .EXE no logon


Imagem

Imagem



Existem inumeras aplicações deste software, no site ha uma lista de todos comandos e exemplos.

Dependendo do objetivo é fácil a implementação, mas deve demandar algumas horas para testes ate chegar no resultado final.

Grande abraço a todos e boa sorte

=)



Avatar do usuário
r0n4ld0
Administrator
Administrator
Mensagens: 107
Registrado em: 10 Jun 2013 12:29
Localização: Fortaleza
Status: Offline

Re:AutoHotkey - automatizando tarefas

Mensagem por r0n4ld0 »

Merecia ai uns 10 obrigados nussa muito bom heim!
________________________
Atenciosamente,
Ronaldo davi

Fortaleza CE - Brasil

Avatar do usuário
marceloleaes
Administrator
Administrator
Mensagens: 1516
Registrado em: 10 Jun 2013 12:45
Localização: Novo Hamburgo
Idade: 41
Contato:
Status: Offline

Re:AutoHotkey - automatizando tarefas

Mensagem por marceloleaes »

Belo post !! Brigadão !!  ;D
"Transportai um punhado de terra todos os dias e fareis uma montanha." Confúcio

Avatar do usuário
leandro.cunha
Global Moderator
Global Moderator
Mensagens: 66
Registrado em: 10 Jun 2013 12:43
Localização: São Paulo
Contato:
Status: Offline

Re:AutoHotkey - automatizando tarefas

Mensagem por leandro.cunha »

Fera Demais, Parabéns Parceiro

Avatar do usuário
gledson.suzuki
Administrator
Administrator
Mensagens: 3
Registrado em: 25 Jun 2013 13:14
Status: Offline

Re:AutoHotkey - automatizando tarefas

Mensagem por gledson.suzuki »

Obrigado pessoal

Qualquer duvida estou a disposição

Responder

Voltar para “Scripts”