Compartilhar via


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!