Não importa se você é ou não da área de suporte ao usuário ou administração de servidores. Usuário com perfil de administrador na máquina é sempre um problema para nós. Com tal “poder”, é incrível o estrago que um usuário (principalmente os descuidados) pode fazer no ambiente de uma empresa. Estragos estes que vão desde a criação de compartilhamentos Full Control, que é um prato cheio para vírus e trojans, à instalação de softwares indevidos e piratas que podem causar sérios problemas jurídicos à empresa.
Acabar com os usuários que são administradores locais (e a festa daqueles que se “auto-inserem” no grupo admin local) é muito fácil - e revigorante! Basta criarmos uma GPO de grupo restrito. Até aí, tudo bem, todos nós sabemos como fazer isso. Mas, como tratar a exceção? Quando um usuário realmente precisa ser administrador local da estação? Um dos maiores problemas da GPO de grupos restritos é que não temos como gerar uma exceção somente para um usuário em uma máquina. Ou o usuário não é administrador ou será administrador de todas as máquinas!
Então, como dar acesso administrativo a um somente um usuário ou usuários, mas somente em suas máquinas?
A solução que encontrei utiliza um simples script vbs que é executado como script de inicialização e desligamento, e irei explicá-la abaixo. Confesso que ainda está em fase de homologação aqui onde trabalho, mas todos os testes que realizamos foram realizados com sucesso.
Não irei detalhar o processo de criação de GPO’s, pois esse não é o intuito deste post. Caso haja o interesse, futuramente conversamos sobre isso!
1° Passo – Criar a GPO de Restricted Group
Primeiro passo é criar a GPO de grupo restrito, configurando o grupo, ou os grupos, que devem ser administradores de todas as estações de trabalho e linka-la a OU desejada;
2º Passo – Criar um compartilhamento para o script vbs e o arquivo de configuração
A criação desse compartilhamento pode ser no próprio DC ou em um servidor de arquivos qualquer. Para nosso exemplo irei criar o compartilhamento com o nome de teste no próprio DC e com as seguintes configurações de segurança:
As permissões do compartilhamento devem ser as seguintes:
-
Admins. do domínio – Leitura
-
Computadores do domínio – Leitura
-
Grupo/Usuário – Leitura/Escrita » Grupo ou usuário com permissão de escrita para alterar o arquivo de configuração do script
Nas configurações de segurança, adicionamos as seguintes entradas:


3° Passo – Colocar no compartilhamento criado o script e o arquivo de configuração
O arquivo de configuração nada mais que é um arquivo de texto com a seguinte estrutura conforme exemplo (toda linha com o símbolo # será tratado como comentário):
# FORMATO DO ARQUIVO
# nome_computador;login1-login2-login3-etc
WINXP01;daniel-prisca
Isto é, o nome da máquina separado dos logins por ponto e vírgula e os logins que devem ser administradores desta máquina específica separados por traço. Salve o arquivo com o nome de restrictedgroups.txt.
Agora, vamos criar um arquivo vbs com o nome restrictedgroupsex.vbs ( ex de exceção e não sex
)
On Error Resume next
Const ForReading = 1
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile _
("\\labserver.labdc.local\teste\restrictedgroups.txt", ForReading)
Set objComputer = CreateObject("Shell.LocalMachine")
strComputer = objComputer.MachineName
Do Until objTextFile.AtEndOfStream
Linha = objTextFile.Readline
If InStr(1,Linha,"#") = 0 Then
vetor = Split(Linha,";")
If UCase(strComputer) = UCase(vetor(0))Then
vetor2 = Split(vetor(1), "-")
For i = 0 To UBound(vetor2)
usuario = vetor2(i)
Set objGroup = GetObject("WinNT://" & strComputer & "/Administradores,group")
Set objUser = GetObject("WinNT://LABDC/" & usuario & ",user")
objGroup.Add(objUser.ADsPath)
Next
Exit Do
End If
End If
Loop
objTextFile.close
Prestar atenção para o formato do caminho do arquivo de configuração e não esquecer de alterar o nome do domínio de sua empresa.
4° Passo – Criar a GPO das Exceções
Vamos agora criar a GPO que irá configurar as exceções. Crie uma nova GPO com o nome de restrictedEx, por exemplo, e configure o vbs como script de inicialização e desligamento. IMPORTANTE: O caminho do vbs deve ser no formato UNC!! Conforme imagem abaixo:

Depois vamos linka-la a mesma OU onde aplicamos a GPO do passo 1. A ordem de aplicação das GPO’s é importante, primeiro devemos aplicar a GPO de grupo restrito (passo 1) e depois a GPO que irá configurar as exceções conforme imagem abaixo:

5° Passo – Hora de testar!
Depois de seguidos os passos acima, chegou a hora do teste. No arquivo de configuração, coloque o nome de alguma maquina que esteja na OU que recebe estas políticas, colocando o login do usuário ou dos usuários que devem ser a exceção. Atentando para separar o hostname por ponto-e-vírgula e os logins por traço.
Na máquina de teste, executar o comando gpupdate /force para pegar as políticas e depois reinicializar a máquina para os scripts serem executados.
Se todos os passos foram seguidos corretamente, deve irá funcionar.
PS.: Se por acaso ficou curioso por causa de outra GPO que está no print (NegarLogonLocal), aguarde que está será assunto para a parte 2 na semana que vem. 
Abraços!
Visualizações(2020)