logon.vbs não está mapeando as unidades de rede

2

Eu sou novo na criação de um script vbs para mapear unidades de rede no Windows. Por algum motivo, o script é executado, mas não mapeia nenhuma unidade de rede quando um usuário faz logon no domínio. Aqui está o script que estou usando. É bem simples e direto.

Option Explicit
Dim wshNetwork 

Set wshNetwork = CreateObject("WScript.Network")

wshNetwork.MapNetworkDrive "S:","\server\shared"
wshNetwork.MapNetworkDrive "U:","\server\" & wshNetwork.UserName
WScript.Quit

O que estou fazendo de errado?

    
por aduljr 01.09.2009 / 21:33

2 respostas

3

Tente:

wshNetwork.MapNetworkDrive "S:","\server\shared", True
wshNetwork.MapNetworkDrive "U:","\server\" & wshNetwork.UserName, True

Eu também adiciono uma rotina para remover todos os compartilhamentos apenas para evitar erros de "dispositivo já em uso" que eu estava recebendo, antes de mapear as unidades.

wshNetwork.RemoveNetworkDrive "S:", True, True
wshNetwork.RemoveNetworkDrive "U:", True, True

wscript.sleep 300
    
por 01.09.2009 / 21:40
1

Aqui está uma função que estou usando:

Function MapDrive(ByVal strDrive, ByVal strShare)
    ' Function to map network share to a drive letter.
    ' If the drive letter specified is already in use, the function
    ' attempts to remove the network connection.
    ' objFSO is the File System Object, with global scope.
    ' objNetwork is the Network object, with global scope.
    ' Returns True if drive mapped, False otherwise.

    Dim objDrive
    On Error Resume Next
    If (objFSO.DriveExists(strDrive) = True) Then
        Set objDrive = objFSO.GetDrive(strDrive)
        If (Err.Number <> 0) Then
            On Error GoTo 0
            MapDrive = False
            Exit Function
        End If
        If (objDrive.DriveType = 3) Then
            objNetwork.RemoveNetworkDrive strDrive, True, True
        Else
            MapDrive = False
            Exit Function
        End If
        Set objDrive = Nothing
    End If
    objNetwork.MapNetworkDrive strDrive, strShare
    If (Err.Number = 0) Then
        MapDrive = True
    Else
        Err.Clear
        MapDrive = False
    End If
    On Error GoTo 0
End Function

Exemplo de uso:

If (MapDrive("Z:", "\yourserver\yourshare") = False) Then
    ' Do something because there was an error.        
End If
    
por 01.09.2009 / 22:01