Caso você prefira fazer o script por VBS (para não ter que assinar digitalmente para poder usar em GPO, por expmplo), leia nosso posto de Script PowerShell para mapear objetos do AD

Esse script fará o seguinte:

  • Vai consultar em qual OU o usuário está;
  • Dessa OU, de onde o usuário está, até o nível mais básico definido no código (em cinza), irá listar todos os objetos dessa OU, e:
    • Para cada objeto de Pasta Compartilhada encontrado irá mapear, usando o nome da pasta como letra e o caminho de rede definido.
    • Para cada objeto de Impressora de rede encontrado irá mapear, usando o caminho da impressora definido.
ON ERROR RESUME NEXT
Dim i, objContainer, objPrinter, objVol, sys, VolName, WshNetwork, objFSO, objShell
Set objFSO = CreateObject(“Scripting.FileSystemObject”)
Set WshNetwork = WScript.CreateObject(“WScript.Network”)
Set objShell = CreateObject(“Shell.Application”)
Set sys = CreateObject(“ADSystemInfo”)
arr = split(sys.UserName,”,”)
OU = Replace(sys.UserName, arr(0)&”,”, “”)
OU = LCase(OU)
ConnectPublishedFolders OU
ConnectPublishedPrinters OU
Sub ConnectContainer(strContainer)
    Set objContainer = GetObject(“LDAP://” & strContainer )
End Sub


Sub ConnectPublishedFolders(OURecursos)
 
   arr = Split(OURecursos, “,”)
 
   For i = 0 to ubound(arr)
 
       If Left(OURecursos, 3) <> “dc=” then
 
           Set objContainer = GetObject(“LDAP://” & OURecursos )
 
           objContainer.Filter = Array(“volume”)
 
           For Each objVol In objContainer
 
               VolName = objVol.name
 
               VolName = Replace(VolName, “CN=”,””)
 
               VolName = Replace(VolName, “:”,””)
 
               VolName = VolName &”:”
 
               If (objFSO.DriveExists(VolName) = True) Then
 
                   WshNetwork.RemoveNetworkDrive VolName, True, True
 
               End If
 
           Next
 
           For Each objVol In objContainer
 
               VolName = objVol.name
 
               VolName = Replace(VolName, “CN=”,””)
 
               VolName = Replace(VolName, “:”,””)
 
               VolName = VolName &”:”
 
               WshNetwork.MapNetworkDrive VolName, objVol.UNCName, True
 
               If NOT (IsEmpty(objVol.Description) or IsNull(objVol.Description)) Then
 
                   objShell.NameSpace(VolName).Self.Name = objVol.Description
 
               End If
 
           Next
 
       End if
 
   Next
End Sub


Sub ConnectPublishedPrinters(OURecursos)
 
   arr = Split(OURecursos, “,”)
 
   For i = 0 to ubound(arr)
 
       If Left(OURecursos, 3) <> “dc=” then
 
           Set objContainer = GetObject(“LDAP://” & OURecursos )
 
           objContainer.Filter = Array(“printQueue”)
 
           For Each objPrinter In objContainer
 
               WshNetwork.AddWindowsPrinterConnection objPrinter.uNCName
 
           Next
 
       End if
 
   Next
End Sub

Fontes/Referências

NVLAN – Script PowerShell para mapear objetos do AD

https://www.computerperformance.co.uk/logon/mapnetworkdrive-rename

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
Categorias: POSTs