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
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
Depois de compilar ele ira gerar o arquivo .EXE
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
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
=)
AutoHotkey - automatizando tarefas
- gledson.suzuki
- Administrator
- Mensagens: 3
- Registrado em: 25 Jun 2013 13:14
- Status: Offline
- r0n4ld0
- Administrator
- Mensagens: 107
- Registrado em: 10 Jun 2013 12:29
- Localização: Fortaleza
- Status: Offline
Re:AutoHotkey - automatizando tarefas
Merecia ai uns 10 obrigados nussa muito bom heim!
________________________
Atenciosamente,
Ronaldo davi
Fortaleza CE - Brasil
Atenciosamente,
Ronaldo davi
Fortaleza CE - Brasil
- marceloleaes
- Administrator
- Mensagens: 1516
- Registrado em: 10 Jun 2013 12:45
- Localização: Novo Hamburgo
- Idade: 41
- Contato:
- Status: Offline
Re:AutoHotkey - automatizando tarefas
Belo post !! Brigadão !!
"Transportai um punhado de terra todos os dias e fareis uma montanha." Confúcio
- leandro.cunha
- Global Moderator
- Mensagens: 66
- Registrado em: 10 Jun 2013 12:43
- Localização: São Paulo
- Contato:
- Status: Offline
Re:AutoHotkey - automatizando tarefas
Fera Demais, Parabéns Parceiro
- gledson.suzuki
- Administrator
- Mensagens: 3
- Registrado em: 25 Jun 2013 13:14
- Status: Offline
Re:AutoHotkey - automatizando tarefas
Obrigado pessoal
Qualquer duvida estou a disposição
Qualquer duvida estou a disposição