none
Script VBS - Compartilhamento de rede por Grupo RRS feed

  • Pergunta

  • Presados,

    Tenho um script de rede da seguinte forma:

    'Script de Login
    
    
    On error Resume Next
    Err.clear 0
    
    '============================================================================
    'Mapeando Unidades de Disco
    
    Set WshNetwork = Wscript.CreateObject("Wscript.Network")
    WshNetwork.MapNetworkDrive "R:","\\SRV-01\Suporte","true"
    
    Set WshNetwork = Wscript.CreateObject("Wscript.Network")
    WshNetwork.MapNetworkDrive "O:","\\SRV-01\rede","true"
    
    Set WshNetwork = Wscript.CreateObject("Wscript.Network")
    WshNetwork.MapNetworkDrive "P:","\\SRV-01\publico","true"




    Pergunto:

    Essas Pastas estão dentro de uma unidade de disco E:/ dentro do meu servidor.

    Dentro dessa mesma unidade há outras pastas também;  gostaria de de fazer um script.vbs, unico que mapea-se as pastas de dessa unidade por grupo de usuário. Por exemplo

    Quando o usuário do grupo "suporte" quando logado na estação não aparecesse o mapeamento do Grupo "rede" e nem publico

    E quando o usuário do domínio fizer logon aparecesse apenas o mapeamento público.

    Desenhando:

    Administradores                 Suporte                                          Usuários

    R:\REDE                            R:\Suporte                                        R:\Publico

       \Suporte                            \Publico                 

       \ Publico

    Lembrando que deverá aparecer apenas um mapeamento (R:/) de modo que o as pastas que o grupo não tiver acesso não apareça no mapeamento.

    Grato


    • Editado Fábio JrModerator domingo, 18 de novembro de 2012 15:44 Titulo e formatação do código
    sexta-feira, 16 de novembro de 2012 18:49

Respostas

  • Euzer,

    Na ultima semana foi postado um script que pode ser útil pra vc, ele contém a função InGroup que verifica se o usuário faz parte de determinado grupo.

    Faça as suas alterações neste script, se não funcionar post aqui o script com suas modificações e descreva os problemas que ocorreram.

    on error resume next
    
    'Objetos
    Set WshNetwork = CreateObject("WScript.Network")
    set objShell   = CreateObject( "WScript.Shell" )
    
    strUserName = objShell.ExpandEnvironmentStrings("%username%")
    strUserDomain = objShell.ExpandEnvironmentStrings("%userdomain%")
    
    'Configura Dicionário de Grupos
    Set dicGrupo = CreateObject("Scripting.Dictionary")
    dicGrupo.CompareMode = 1
    ADSPath = strUserDomain & "/" & strUserName
    Set userPath = GetObject("WinNT://" & ADSPath & ",user")
    For Each listGroup in userPath.Groups
    	dicGrupo.Add listGroup.Name, "-"
    next
    
    
    'Inicio do Script
    
    if IsMember("nome do grupo 1") then
    
    	MapDrive "P:","\\SRV-QLIK\aplicacoes" 
    
    end if
    
    
    if IsMember("nome do grupo 2") then
    	
    	MapDrive "R:","\\SRVARQ01\ADMINISTRATIVO"
    	WshNetwork.AddWindowsPrinterConnection "\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2"
    	WshNetwork.SetDefaultPrinter "\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2"
       
    end if
    
    
    'Final do script
    
    ' *****************************************************
    ' Funções
    Function IsMember(groupName)
    	IsMember = cbool(dicGrupo.Exists(groupName))
    End Function
    
    Function MapDrive(DriveLetter, SharedPath)
    	On Error Resume Next
    	Set objNetwork = CreateObject("Wscript.Network")
    	if objNetwork.DriveExists(SharedPath) then
    		If objNetwork.DriveExists(DriveLetter) then
    			objNetwork.RemoveNetworkDrive DriveLetter, true, true
    		end if
    		objNetwork.MapNetworkDrive DriveLetter, SharedPath, true
    	end if
    
    end Function


    Fábio de Paula Junior

    domingo, 18 de novembro de 2012 15:17
    Moderador

Todas as Respostas

  • Euzer,

    Na ultima semana foi postado um script que pode ser útil pra vc, ele contém a função InGroup que verifica se o usuário faz parte de determinado grupo.

    Faça as suas alterações neste script, se não funcionar post aqui o script com suas modificações e descreva os problemas que ocorreram.

    on error resume next
    
    'Objetos
    Set WshNetwork = CreateObject("WScript.Network")
    set objShell   = CreateObject( "WScript.Shell" )
    
    strUserName = objShell.ExpandEnvironmentStrings("%username%")
    strUserDomain = objShell.ExpandEnvironmentStrings("%userdomain%")
    
    'Configura Dicionário de Grupos
    Set dicGrupo = CreateObject("Scripting.Dictionary")
    dicGrupo.CompareMode = 1
    ADSPath = strUserDomain & "/" & strUserName
    Set userPath = GetObject("WinNT://" & ADSPath & ",user")
    For Each listGroup in userPath.Groups
    	dicGrupo.Add listGroup.Name, "-"
    next
    
    
    'Inicio do Script
    
    if IsMember("nome do grupo 1") then
    
    	MapDrive "P:","\\SRV-QLIK\aplicacoes" 
    
    end if
    
    
    if IsMember("nome do grupo 2") then
    	
    	MapDrive "R:","\\SRVARQ01\ADMINISTRATIVO"
    	WshNetwork.AddWindowsPrinterConnection "\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2"
    	WshNetwork.SetDefaultPrinter "\\SRV-IMP2.NEXUS.LOCAL\X-SGTG2"
       
    end if
    
    
    'Final do script
    
    ' *****************************************************
    ' Funções
    Function IsMember(groupName)
    	IsMember = cbool(dicGrupo.Exists(groupName))
    End Function
    
    Function MapDrive(DriveLetter, SharedPath)
    	On Error Resume Next
    	Set objNetwork = CreateObject("Wscript.Network")
    	if objNetwork.DriveExists(SharedPath) then
    		If objNetwork.DriveExists(DriveLetter) then
    			objNetwork.RemoveNetworkDrive DriveLetter, true, true
    		end if
    		objNetwork.MapNetworkDrive DriveLetter, SharedPath, true
    	end if
    
    end Function


    Fábio de Paula Junior

    domingo, 18 de novembro de 2012 15:17
    Moderador
  • Ótimo scrip,  eu tinha um com case aqui porem não funcionava adequadamente.  Porem eu tenho um problema que não importa o script que eu use, ele não mapeia as pastas nem no bat se eu coloca o scrit no logon de inicialização.  Somente se coloca o script definido por usuário.  

    Em todo caso usei esse script em conjunto com os comandos abaixo, para abrir complementos no meu netlogon em modo invisível definido por grupos, como instalação de impressoras e backup.

    Dim WShell
    Set WShell = CreateObject("WScript.Shell")
    WShell.Run "script.bat",0,0
    Set WShell = Nothing


    sexta-feira, 27 de setembro de 2019 14:56