Vamos criar uma GPO e definir um script de inicialização que use informações da OU para definir variáveis de ambiente o Windows.

A vantagem de criar variáveis de ambiente é poder usá-las em GPOs. Por exemplo: Definir uma variável chamada SETOR, com o nome do Setor e criar uma única GPO para (por exemplo) toda empresa:

  • Mapear as impressoras com os nomes Impressora-%SETOR%
  • Mapear a pasta de rede \\servidor\compartilhamento\%SETOR%
  • Definir o papel de parede \\dominio\netlogon\wallpaper\%SETOR%.png

Para exemplificar aqui, vamos considerar a seguinte estrutura no AD:

  • seudominio.com.br
    • Filiais
      • RJ
        • Contabilidade
        • RH
        • TI
      • SP
        • Amoxerifado
        • Patrimonio
        • Seguranca

Vamos supor que o computador PC2 esteja na OU Contabilidade. Essa OU fica na OU RJ, da OU Filiais, do domínio dominio.com.br

Se você ainda não sabe sobre Distinguished Name, leia nosso post de Como obter o Distinguished Name (DN) no Active Directory. Caso saiba sobre Distinguished Name, sabe que o DN do PC2 é:

CN=PC2,OU=Contabilidade,OU=RJ,OU=Filiais,DC=seudominio,DC=com,DC=br

Considerando que não precisamos o nome do computador e nem do nome do domínio, podemos filtrar e obtermos a seguinte resposta:

Contabilidade,RJ,Filiais

Em seguida, separamos, obtemos e definimos as seguintes variáveis:

  • Setor: Contabilidade
  • Local: RJ
  • Tipo: Filiais

Para obter e gerar as variáveis, crie uma GPO chamada Variaveis de ambiente e faça o link dela em uma OU que possuí toda a estrutura que você deseja usar. Em seguida edite essa política, vá em Computer Configuration > Windows Configuration > Scripts e abra Startup. Clique em Adicionar, insira o nome variaveis.vbs e clique em OK. Agora clique em Show Files, dentro dessa pasta crie um arquivo variaveis.vbs com o seguinte conteúdo:

On error resume next

Dim WshNetwork, ComputerName, objADSysInfo, strComputerName, objComputer, objEnv, objShell, strOUDN, strOUNames, StrOU

‘Obtain Computer Name
Set WshNetwork = CreateObject(“WScript.Network”)
ComputerName = WshNetwork.ComputerName
‘Obtain AD Information
Set objADSysInfo = CreateObject(“ADSystemInfo”)
strComputerName = objADSysInfo.ComputerName
Set objComputer = GetObject(“LDAP://” & strComputerName)
strOUDN = Replace(objComputer.DistinguishedName,”CN=”&ComputerName&”,”,””)
strOUDN = Replace(strOUDN,”,DC=seudominio,DC=com,DC=br“,””)
strOUNames = Split(strOUDN, “,OU=”)

‘Set the new Path in the SYSTEM
Set objShell = CreateObject(“WScript.Shell”)
Set objEnv = objShell.Environment(“System”)
objEnv(“Tipo”) = strOUNames(2)
objEnv(“Local”) = strOUNames(1)


‘Set the new Path in the USER
Set objEnv = objShell.Environment(“User”)
objEnv(“Setor”) = strOUNames(0)

Fontes/Referências

NVLAN – Como obter o Distinguished Name (DN) no Active Directory

Mais Informações

Esperamos ter ajudado da melhor forma possível e estaremos sempre a disposição para mais informações.

Entre em contato conosco pelo e-mail equipe@nvlan.com.br.

NVLAN - Consultoria