VBScript mysterium - Почему сетевые диски не подключаются при входе в систему? - PullRequest
0 голосов
/ 16 августа 2011

Это одна из самых странных вещей, которые я когда-либо видел. У меня есть сценарий входа, который в основном отключает набор сетевых дисков, а затем снова подключает их. Ранее для всех пользователей в их профиле AD был установлен пакетный файл. После того, как я написал vbscript, я просто запустил его через пакетный скрипт. И это работает просто отлично.

Теперь, однако, я попытался создать объект групповой политики и установить там vbscript. И как ни странно, сетевые диски не подключены. Поэтому я начал ковыряться, поставив msgbox прямо перед подключением дисков. И один сразу после. Сразу после входа в систему я вижу, как появляется первое текстовое поле. После того, как я нажму OK, диски должны быть подключены. Но они этого не делают. И сразу после этого я вижу второе текстовое поле.

Что действительно странно, так это то, что если я запускаю скрипт сразу после этого, все работает просто отлично! Я даже попытался поместить команду 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 ]

1 голос
/ 17 августа 2011

Оказывается, это "нормальное поведение", как описано здесь: http://pcloadletter.co.uk/tag/launchapp-wsf/

0 голосов
/ 16 августа 2011

Стоит попробовать проверить привилегии скрипта. Я столкнулся с множеством проблем с общим сетевым отображением при использовании запланированных / автоматических сценариев.

Лично я использую пакетное «сетевое использование», и это решило много странных проблем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...