Это одна из самых странных вещей, которые я когда-либо видел. У меня есть сценарий входа, который в основном отключает набор сетевых дисков, а затем снова подключает их. Ранее для всех пользователей в их профиле 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-сервер может быть не готов или что-то еще во время выполнения скрипта.