none
Script VBS mapear FILIAL e DPTO RRS feed

  • Pergunta

  • Boa tarde,

    Achei no forum varios scripts em VBS para mapear de acordo com o departamento, mas, no meu caso eu preciso de um que faça filial e departamento

    Gostaria de saber qual a melhor forma de separar no AD, e como fazer esse script,

    Pensei em fazer uma OU para Filial e um Grupo para Dpto,

    Pensei no seguinte desenho

    EMPRESA >> FILIAL >> DPTO

    If filial = "Matriz" then

          if dpto = "ti" then

                      net use x: \\servidor\ti

          if dpto = "diretoria" then

                      net use x: \\servidor\diretoria

    If filial = "filial01" then

          if dpto = "ti" then

                      net use x: \\servidorfilial\ti

          if dpto = "diretoria" then

                      net use x: \\servidorfilial\diretoria

    Obrigado,

    sexta-feira, 13 de abril de 2012 16:13

Respostas

  • é só repedtir o bloco de IF dentro de cada select:(claro, ajustando o nome do servidor e compartilhamentos)

    'Dados do Usuário
    Set objSysInfo = CreateObject("ADSystemInfo")
    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
    strGroups = LCase(Join(objUser.MemberOf))
    
    Set objNetwork = CreateObject("WScript.Network") 
    
    
    'Define variaveis da Matriz ou filiais
    SELECT CASE TRUE
    	CASE INSTR(objUser.AdsPath,"OU=MATRIZ")>0
    		if instr(strGroups,"ti") then
    			objNetwork.MapNetworkDrive "X:", "\\servidor\ti"
    		elseif instr(strGroups,"diretoria") then
    			objNetwork.MapNetworkDrive "X:", "\\servidor\diretoria"
    		end if
    
    	CASE INSTR(objUser.AdsPath,"OU=FILIAL1")>0
    		if instr(strGroups,"operacional") then
    			objNetwork.MapNetworkDrive "X:", "\\servidorfilial\ti"
    		elseif instr(strGroups,"administrativo") then
    			objNetwork.MapNetworkDrive "X:", "\\servidorfilial\diretoria"
    		end if
    
    END SELECT


    Fábio de Paula Junior


    sexta-feira, 13 de abril de 2012 19:51
    Moderador

Todas as Respostas

  • A melhor forma é a que facilita o seu trabalho.

    Seguindo esta lógica que vc propos:

    1)Identificar FILIAL (tem que ver a OU que o cara faz parte), Exemplo vc tem MATRIZ,FILIAL1 e FILIAL2(sendo estes também os nomes das OUs)

    Set objSysInfo = CreateObject("ADSystemInfo")
    
    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
    
    
    SELECT CASE TRUE
    	CASE INSTR(objUser.AdsPath,"OU=MATRIZ")>0
    		'ENTRA AQUI O CODIGO PARA MATRIZ
    	CASE INSTR(objUser.AdsPath,"OU=FILIAL1")>0
    		'ENTRA AQUI O CODIGO PARA FILIAL1
    	CASE INSTR(objUser.AdsPath,"OU=FILIAL2")>0
    		'ENTRA AQUI O CODIGO PARA FILIAL2
    END SELECT

    2) Agora os grupos

    'Dados do Usuário
    Set objSysInfo = CreateObject("ADSystemInfo")
    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
    strGroups = LCase(Join(objUser.MemberOf))
    
    Set objNetwork = CreateObject("WScript.Network") 
    
    
    'Define variaveis da Matriz ou filiais
    SELECT CASE TRUE
    	CASE INSTR(objUser.AdsPath,"OU=MATRIZ")>0
    		servidor="\\servidor"
    	CASE INSTR(objUser.AdsPath,"OU=FILIAL1")>0
    		servidor="\\servidorF1"
    	CASE INSTR(objUser.AdsPath,"OU=FILIAL2")>0
    		servidor="\\servidorF2"
    END SELECT
    
    'Faz mapeamento de acordo com o grupo
    if instr(strGroups,"ti") then
    	objNetwork.MapNetworkDrive "X:", servidor & "\ti"
    elseif instr(strGroups,"diretoria") then
    	objNetwork.MapNetworkDrive "X:", servidor & "\diretoria"
    end if
    Veja que use o IF pra um e SELECT CASE para outro, mas isto é indiferente, gosto mais do SELECT CASE, fica a sua escolha

    Creating logon scripts

    http://technet.microsoft.com/en-us/library/cc758918(v=ws.10).aspx


    Fábio de Paula Junior

    sexta-feira, 13 de abril de 2012 16:44
    Moderador
  • Se eu quiser muder um pouquinho a logica, e colocar OPERACIONAL e ADMINISTRATIVO dentro da filial

    ex:

    EMPRESA >> FILIAL >> ADMINISTRATIVO ou OPERACIONAL >> DEPARTAMENTO

    Eu acho que ficaria melhor um if dentro do outro, pq se eu precisar mapear uma impressora ou algo do tipo pra um determinado departamento fica melhor,

    Você poderia colocar um exemplo dessa forma, com 3 "if", 1 if para matriz, 1 if para operacional ou administrativo e +1 if para o departamento

    Obrigado

    sexta-feira, 13 de abril de 2012 18:56
  • Eu queria que ficasse mais ou menos assim, é que não sou muito bom em scripts

    Case "Matiz"

           Case "ADM"
                If Not FSODrive.DriveExists("X:") Then
                objNetwork.MapNetworkDrive "X:", "\\servidor1\ADM"
            End If

           Case "TI"
                If Not FSODrive.DriveExists("X:") Then
                objNetwork.MapNetworkDrive "X:", "\\servidor1\TI"
            End If

    Case "FILIAL01"

           Case "ADM"
                If Not FSODrive.DriveExists("X:") Then
                objNetwork.MapNetworkDrive "X:", "\\servidorfilial1\ADM"
            End If

           Case "TI"
                If Not FSODrive.DriveExists("X:") Then
                objNetwork.MapNetworkDrive "X:", "\\servidorfilial1\TI"
            End If

    sexta-feira, 13 de abril de 2012 19:00
  • é só repedtir o bloco de IF dentro de cada select:(claro, ajustando o nome do servidor e compartilhamentos)

    'Dados do Usuário
    Set objSysInfo = CreateObject("ADSystemInfo")
    Set objUser = GetObject("LDAP://" & objSysInfo.UserName)
    strGroups = LCase(Join(objUser.MemberOf))
    
    Set objNetwork = CreateObject("WScript.Network") 
    
    
    'Define variaveis da Matriz ou filiais
    SELECT CASE TRUE
    	CASE INSTR(objUser.AdsPath,"OU=MATRIZ")>0
    		if instr(strGroups,"ti") then
    			objNetwork.MapNetworkDrive "X:", "\\servidor\ti"
    		elseif instr(strGroups,"diretoria") then
    			objNetwork.MapNetworkDrive "X:", "\\servidor\diretoria"
    		end if
    
    	CASE INSTR(objUser.AdsPath,"OU=FILIAL1")>0
    		if instr(strGroups,"operacional") then
    			objNetwork.MapNetworkDrive "X:", "\\servidorfilial\ti"
    		elseif instr(strGroups,"administrativo") then
    			objNetwork.MapNetworkDrive "X:", "\\servidorfilial\diretoria"
    		end if
    
    END SELECT


    Fábio de Paula Junior


    sexta-feira, 13 de abril de 2012 19:51
    Moderador