GPO: como instalar executável no domínio

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.

58

Após ter digitado irá aparecer uma janela com as informações do software, como a figura abaixo.

67

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:

78

Note que depois de digitado o comando o software irá instalar sem interação com o usuário.

84

95

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…

104

Clicando em Finish, veja que o programa foi instalado:

117

Para confirmar iremos em programas instalados.

123

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:

criando-pasta-no-c-servidor

Dentro dela está uma cópia do software MGLTools.

copiado-para-c-servidor

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\

usuario-consegue-acessar

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:

montando-script

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.

script-salvo

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:

script-testando-11

scirot-testando-2

script-testado-1

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:

excluindo-script-2-cc3b3pia

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:

salvando-script-propriedades-users

Agora irei verificar as permissões do usuário:

permisscoes-diego

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:

logando-com-o-user-diego

rodando-script-no-usuario

104

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

excluindo-script-2

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.

Diego Gouveia

Mais artigos deste autor »

Nascido e residente de Fortaleza – CE, Diego Lima é graduado em Análise de Sistemas, MTAC (Multi-Plataform Tecnical Audience Contributor), escreve para diversas comunidades técnicas e é autor dos livros: Tudo sobre GPOs no Windows Server e Administrando o Active Directory com o PowerShell. Atualmente é Analista de TI e busca sempre aprender mais para o seu crescimento profissional.


3 Comentários

Henrique Claus
1

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.

Henrique Claus
2

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.

Deixe seu comentário

Seu endereço de e-mail não será publicado. Campos com * são obrigatórios!