VBScript mysterium - 为什么登录时没有连接网络驱动器?

时间:2011-08-16 12:36:17

标签: vbscript active-directory network-drive

这是我见过的最奇怪的事情之一。我有这个登录脚本,它基本上断开了一组网络驱动器,然后重新连接它们。以前,所有用户都在其AD配置文件中设置了批处理文件以进行运行。在我编写vbscript之后,我只是通过批处理脚本运行它。它一直工作得很好。

然而,现在我尝试创建一个GPO并直接在那里设置vbscript。奇怪的是,没有连接网络驱动器。所以我开始四处寻找,在连接驱动器之前放置一个msgbox。一个人之后。登录后我立即看到第一个文本框出现。单击“确定”后,应该连接驱动器。但他们没有。紧接着,我可以看到第二个文本框。

真正奇怪的是,如果我直接手动运行脚本,一切正常!我甚至试图在脚本的顶部放置一个sleep命令,以防万一在域控制器的复制中存在一些不匹配。但那也没有做任何事情。

这是现在的脚本:

'Run the script
mapNetworkdrives

Public Sub mapNetworkdrives()
    ' Lag WScript.Network-objekt
    Set objNetwork = CreateObject("WScript.Network")
    Set objFso = CreateObject("Scripting.FileSystemObject")
    'On Error Resume Next

    ' Fjern eksisterende nettverksdrev først
    removeNetworkDrives objFSO, objnetwork

    Dim userName
    userName = objNetwork.UserName

    Dim computerName
    computerName = objNetwork.ComputerName

    ' Sjekk om det er Citrix som blir logget på
    If computerName = "JBC" Then
        If Not isDriveConnected("S", objFso, objNetwork) = True Then
            objNetwork.MapNetworkDrive "S:", "\\sharepoint.ourcompany.no\prosj"
        End if
    End if

    ' Sjekk om nettverksdrev er allerede koblet opp

    'objNetwork.MapNetworkDrive "Z:", "\\ourcompany.local\files\Brukere\" & username
    objNetwork.MapNetworkDrive "P:", "\\ourcompany.local\files\felles"
    objNetwork.MapNetworkDrive "Q:", "\\ourcompany.local\files\maler"
    objNetwork.MapNetworkDrive "R:", "\\ourcompany\DIY"
    objNetwork.MapNetworkDrive "N:", "\\ourcompany\felles\navn"

    Set objNetwork = Nothing
    Set objFSO = Nothing

End Sub

Public Sub removeNetworkDrives(ByVal objFSO, ByVal objNetwork)

    'On Error Resume Next

    If isDriveConnected("Z", objFSO) Then
        objNetwork.RemoveNetworkDrive "Z:", True, True
    End if

    If isDriveConnected("P", objFSO) = True Then
        objNetwork.RemoveNetworkDrive "P:", True, True
    End if

    If isDriveConnected("Q", objFSO) = True Then
        objNetwork.RemoveNetworkDrive "Q:", True, True
    End if

    If isDriveConnected("R", objFSO) = True Then
        objNetwork.RemoveNetworkDrive "R:", True, True
    End if

    If isDriveConnected("N", objFSO) = True Then
        objNetwork.RemoveNetworkDrive "N:", True, True
    End if

    Set objNetwork = Nothing        
End Sub

任何人都可以看到我不能做的事吗?我在这里错过了什么吗?如果我首先运行批处理文件,同样运行这个相同的脚本,同样的脚本工作正常。我唯一能想到的是,一些DNS服务器可能还没有准备好,或者在脚本运行时出现了什么。

2 个答案:

答案 0 :(得分:1)

原来,这是“正常行为”,如下所述: http://pcloadletter.co.uk/tag/launchapp-wsf/

答案 1 :(得分:0)

值得尝试检查脚本的权限。 我在计划/自动脚本中遇到了很多网络共享映射问题。

就个人而言,我使用批次" net use"它解决了许多奇怪的问题。