Windows Server: Instalando programas .exe em seu domínio por Script
Neste artigo demonstro como instalar programas do formato .exe em seu domínio 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 domínio e não temos o pacote .msi do fabricante.
Para solucionar este problema iremos trabalhar com as seguintes etapas:
1 – Iremos descobrir o formato de instalação via comando do software
2 – Após descobrir o formato, iremos instalar em uma estação
3 – Após instalar em uma estação, iremos copiar o software para uma estação/servidor e montaremos o script.
4 – Após montado o script, iremos copiar para a pasta sysvol do servidor
5 – Depois de ter copiado para a pasta sysvol do servidor, iremos vincular a algum usuário específico com permissões elevadas(de instalação).
6 – Logar na estação com o usuário específico.
**O primeiro passo:
**1 – Iremos 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 abaixo:
http://mgltools.scripps.edu/downloads/previous-releases/downloads/tars/releases/REL1.5.4/MGLTools-1.5.4-Setup.exe
**
Abriremos o prompt de comando **para verificar a instalação silenciosa. Com o prompt comando aberto digite o nome do software como está salvo na estação + /?. Figura abaixo demonstra:
https://diegogouveiace.files.wordpress.com/2016/07/58.png?w=656
Após ter digitado irá aparecer a instalação uma janela com as informações do software como a figura abaixo.
https://diegogouveiace.files.wordpress.com/2016/07/67.png?w=656
Notamos acima que a instalação silenciosa do software se dar 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 /yserá para aceitarmos os termos.
Caso ainda tem dúvidas de como descobrir a instalação silenciosa de programa, segue este link para saber mais:
http://eduardosena.blog.br/como-descobrir-comando-para-instalacao-silenciosa-de-programas/
2 – Após descobrir o formato, iremos instalar em uma estação.
Com os comandos descobertos, digitaremos no prompt de comando:
https://diegogouveiace.files.wordpress.com/2016/07/78.png?w=656
Note que depois de digitado o comando o software irá instalar sem interação com o usuário.
https://diegogouveiace.files.wordpress.com/2016/07/84.png?w=656
https://diegogouveiace.files.wordpress.com/2016/07/95.png?w=656
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….
https://diegogouveiace.files.wordpress.com/2016/07/104.png?w=656
Clicando em Finish, veja que o programa foi instalado:
https://diegogouveiace.files.wordpress.com/2016/07/117.png?w=656
Para confirmar iremos em programas instalados.
https://diegogouveiace.files.wordpress.com/2016/07/123.png?w=656
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, iremos 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 ele faça uma** cópia desse software para a estação cliente** e dapró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 compartilhadapara o(s) usuário(s) que serão vinculados o script e com as permissões necessárias. Veja a pasta criada abaixo:
https://diegogouveiace.files.wordpress.com/2016/07/criando-pasta-no-c-servidor.png?w=656
Dento dela está uma cópia do software MGLTools.
https://diegogouveiace.files.wordpress.com/2016/07/copiado-para-c-servidor.png?w=656
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 e 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\
https://diegogouveiace.files.wordpress.com/2016/07/usuario-consegue-acessar.png?w=656
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á acontecer erros em relações de 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:**
https://diegogouveiace.files.wordpress.com/2016/07/montando-script.png?w=656
O comando cd\ é para quando o usuário logado com script consiga voltar para o diretório C:\ da estação para criar uma pasta chamada Softwares(md Softwares). Após criado 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 executar o comando instalação do programa: start ….
Com o script montado, iremos salvá-lo na área de trabalho do usuário noformato.bat e executarei para verificar se o mesmo executa.
https://diegogouveiace.files.wordpress.com/2016/07/script-salvo.png?w=656
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 irá fazer tudo que foi prometido:
Executando o script:
https://diegogouveiace.files.wordpress.com/2016/07/script-testando-11.png?w=656
https://diegogouveiace.files.wordpress.com/2016/07/scirot-testando-2.png?w=656
https://diegogouveiace.files.wordpress.com/2016/07/script-testado-1.png?w=696&h=677
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. O por que novamente? Porque 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. Porque vamos para o teste oficial(com o usuário logando)
Agora iremos para o próximo passo:
4 – Após montado o script, iremos copiar para a pasta sysvol do servidor:
A pasta sysvol é responsável pela armazenação de scripts usados por GPOs. Dentro da pasta há outro 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:
https://diegogouveiace.files.wordpress.com/2016/07/excluindo-script-2-cc3b3pia.png?w=656
Com o script copiado iremos para o próximo passo:
**5 – Depois de ter copiado para a pasta sysvol do servidor, iremos 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). Com as propriedades aberta 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:
https://diegogouveiace.files.wordpress.com/2016/07/salvando-script-propriedades-users.png?w=656
Agora irei verificar as permissões do usuário:
https://diegogouveiace.files.wordpress.com/2016/07/permissc3b5es-diego.png?w=656
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 se assim que logar o mesmo 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:
https://diegogouveiace.files.wordpress.com/2016/07/logando-com-o-user-diego.png?w=656
https://diegogouveiace.files.wordpress.com/2016/07/rodando-script-no-usuario.png?w=656
https://diegogouveiace.files.wordpress.com/2016/07/104.png?w=675&h=519
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
https://diegogouveiace.files.wordpress.com/2016/07/excluindo-script-2.png?w=656
E lembre-se de ir depois na aba perfil e apagar o nome dado em script de logon.
Bom galera, quis demonstrar como você fazer a instalação de programas .exe em seu domínio. Muitos aqui pode 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 neste script melhorá-lo, 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. Façam proveito e melhorem, caso houver necessidade!