Neste artigo demonstro como instalar executável no domínio via GPO assim que o usuário logar.
O Windows Server permite a instalação de programas de forma silenciosa e automatizada no formato .msi. Isso pode ser feito via GPO, mas o que demonstrarei hoje é como instalar programas no formato .exe em seu domínio assim que um usuário logar.
Essa dica é bastante útil quando precisamos instalar alguns softwares em várias estações do domínio e não temos o pacote .msi do fabricante.
1 – Descobrir o formato de instalação via comando do software
Essa descoberta pode ser feita com o comando “/?”. Para isso iremos trabalhar com o software MGLTools, no qual está no formato .exe.
Caso deseje baixá-lo para testar junto com o artigo, clique aqui!
Abriremos o prompt de comando para verificar a instalação silenciosa. Com o prompt de comando aberto digite o nome do software como está salvo na estação + /?, conforme imagem abaixo.
Após ter digitado irá aparecer uma janela com as informações do software, como a figura abaixo.
Notamos acima que a instalação silenciosa do software se da pelo /s (run the installer in silent mode) e usando o comando /y (accept all defaults and run the installer). Ou seja, através do comando /s iremos instalar o software e o /y será para aceitarmos os termos.
2 – Após descobrir o formato, instalar em uma estação
Com os comandos descobertos, digitaremos no prompt de comando:
Note que depois de digitado o comando o software irá instalar sem interação com o usuário.
Após ter instalado, aparecerá somente uma tela para clicar em Finish. Notamos que aqui está tudo ocorrendo como queremos, ou seja, o programa instalando via linha de comando sem a necessidade de clicar em next/next/next…
Clicando em Finish, veja que o programa foi instalado:
Para confirmar iremos em programas instalados.
Veja acima que o software foi instalado. Agora iremos desinstalar o programa da estação, já que iremos instalá-lo via script. Não esqueça de desinstalar o programa!
Agora iremos para a 3º etapa somente após ter desinstalado o programa (caso for fazer o teste do script na mesma estação).
3 – Após instalar em uma estação, copiar o software para uma estação/servidor e montaremos o script
Para que copiar para o servidor o software? A ideia é que o script que montaremos faça uma cópia desse software para a estação cliente e da própria estação ele execute o software e instale.
No meu caso irei copiar o software para o meu servidor. Com isso irei fazer uma pasta no disco local C:\ chamada softwares. A ideia é que quando executarmos os script ele copie o software para o disco local C:\ da estação cliente. Então vamos lá:
Criamos uma pasta chamada softwares no diretório C:\ do servidor. A pasta em criamos, ou que irá fazer nos seus testes, tem que estar compartilhada para o(s) usuário(s) que serão vinculados ao script e com as permissões necessárias. Veja a pasta criada abaixo:
Dentro dela está uma cópia do software MGLTools.
Agora iremos na estação cliente e tentaremos acessar o diretório onde está a cópia do software. O por que disso? Justamente para verificarmos se o(s) usuário(s) estão conseguindo “enxergar” o arquivo e já podemos aqui verificar se as permissões estão OK.
Da estação cliente, logado com o usuário (diego.gouveia) em que iremos vincular o script, tentaremos acessar o compartilhamento: \\diego-dc\c$\Softwares. Caso você deseja acessar o compartilhamento criado, digite \\nomedaestação\
Veja acima que consegui acessar a pasta criada no servidor pelo \\ e consigo visualizar o arquivo. Aqui já sei que, quando começar a montar o script, já não irão acontecer erros em relação a acesso/permissões. Uma dica que dou é copiar o arquivo para alguma pasta e verificar se o usuário consegue copiar. Sabendo que as permissões estão Ok, iremos começar a montar o script:
Abra o bloco de notas na estação cliente e com o usuário que será vinculado o script digite:
cd\ md Softwares copy "\\endereçodecompartilhamentodapasta\*.*", "c:\Softwares" cd Softwares start nomedoexecutavel /comandodeinstalaçãoviaprompt
No meu exemplo ficou:
O comando cd\ é para que o usuário logado consiga com script voltar para o diretório C:\ da estação para criar uma pasta chamada Softwares (md Softwares). Após criada a pasta Softwares dentro do diretório c:\ da estação cliente, ele irá copiar TUDO (*.*) que está dentro da pasta Softwares do endereço “\\diego-dc\c$\Softwares\*.*”, e jogar na pasta Softwares da estação cliente. Depois, ele irá entrar no diretório Softwares (cd Softwares) da estação cliente e executa o comando instalação do programa: start…
Com o script montado, iremos salvá-lo na área de trabalho do usuário no formato.bat e executarei para verificar se o mesmo executa.
Veja acima que salvei com o nome ScriptSoftware.bat na área de trabalho do usuário. Agora iremos executá-lo e verificaremos se o mesmo consegue fazer tudo que foi prometido:
Executando o script:
Veja que o programa foi instalado via Script.
PRONTO. Aqui já sei que meu script está funcionando e sei que ele está fazendo tudo como eu quero. Agora iremos deletar a pasta criada (Softwares) no disco local C:\ e mais uma vez desinstalar o programa. Porque novamente? Por que na primeira que instalamos e desinstalamos foi quando estávamos montando o script (descobrindo a instalação via linha de comando) e agora instalamos pelo script feito. Então, vou deletar a pasta criada e desinstalar o programa por que vamos para o teste oficial (com o usuário logando)
4 – Após montado o script, copiar para a pasta sysvol do servidor
A pasta sysvol é responsável pelo armazenamento de scripts usados por GPOs. Dentro da pasta há outra chamada scripts e é nesta que colocaremos nosso script feito na estação cliente. Então copie o script feito na estação de teste e cole dentro da pasta Windows\SYSVOL\sysvol\nomedoseudominio\scripts. Veja abaixo como ficou:
Com o script copiado iremos para o próximo passo:
5 – Depois de ter copiado para a pasta sysvol do servidor, vincular a algum usuário específico com permissões elevadas (de instalação)
Irei abrir meu ADDS e irei nas propriedades do usuário que será vinculado (o mesmo que usei de teste, Diego Gouveia). Nas propriedades do user, irei na aba Perfil e em script de logon digitarei conforme o NOME que está nomeado o script + .bat no final. Veja abaixo:
Agora irei verificar as permissões do usuário:
Note que o mesmo está no grupo Admins do domínio. Ou seja, assim que logar na estação ele terá permissão necessária de instalação. Próximo passo:
6. Logar na estação com o usuário específico
Agora iremos logar com o Diego Gouveia e verificaremos que irá copiar o executável para o diretório c:\softwares e irá instalar o programa MGTools sem a interação, isto é, de forma automática.
Logando:
PROGRAMA INSTALADO COM SUCESSO! Pronto galera, depois disso podemos agora retirar tudo que foi feito para da próxima vez que o usuário logar não ficar instalando as coisas:
Excluindo o ScriptSoftware.bat
E lembre-se de ir depois na aba perfil e apagar o nome dado em script de logon.
Bom galera, eu quis demonstrar como fazer a instalação de programas .exe em seu domínio. Muitos aqui podem falar: “mas o usuário tem que ter permissões, mas blá, blá…”
Imagina você ter que instalar um software indo em next/next/, copiando do servidor tudo de forma manual e em muitas estações? Chato demais.
Essa é uma boa técnica e também podemos melhorar o script, colocando para a instalação de outros programas depois do primeiro e tudo de forma automática.
Eu desenvolvi isso depois de ter que instalar um software em 50 estações. Terminei tudo dentro de 10 minutos.
3 Comentários
Parabéns pelo artigo Diogo! Legal compartilhar o conhecimento, eu uso o software AppDeploy para a instalação de programas em estações do domínio, ele faz justamente o que explicou de forma automatizada. Abraços.
Parabéns pelo artigo! Uso o PDQDeploy para fazer esse tipo de tarefa mas, é sempre bom ter mais uma opção a mão. Abraço.
Parabéns pelo artigo. Muito bem explicado!