У меня есть сценарий, применяемый групповой политикой, который запускается при входе пользователя в систему, чтобы удалить определенные подключенные диски, если они существуют, а затем переназначить их. Вот пример сценария:
Option Explicit
Dim WshNetwork, objUser, objNetwork
Dim strRemotePath1
Dim strDriveLetter1
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set objNetwork = CreateObject("WScript.Network")
on error resume next
strDriveLetter1 = "H:"
WshNetwork.RemoveNetworkDrive strDriveLetter1, True, True
strRemotePath1 = "\\LocationA\hr"
objNetwork.MapNetworkDrive strDriveLetter1, strRemotePath1, true
Wscript.Quit
Скрипт работает, когда я запускаю его двойным щелчком. Если я изменю переменную strRemotePath1 на «\ LocationB \ hr», изменение будет выполнено, когда я дважды щелкну для запуска сценария. Диск удаляется, а затем снова добавляется с новым местоположением. Я точно знаю, что сценарий запускается, когда я вхожу в систему, о чем свидетельствует время последнего выполнения инструмента GPMT.
Однако каждый раз, когда я вхожу в систему, этот диск возвращается на прежнее место. Кешируются ли эти скрипты?
Сделай это проще. Просто удалите диск H и создайте его заново. Если H-диск не существует, команда «On Error Resume Next» обойдет ошибку и продолжит выполнение сценария.
при ошибке Возобновить Далее
Установите wn = Wscript.CreateObject ("WScript.Network")
Установите fs = WScript.CreateObject ("Scripting.FileSystemObject")
Если fs.DriveExists ("H:") = True, то wn.RemoveNetworkDrive "H:", true, true
wn.MapNetworkDrive "H:", "\ LocationA \ hr"
Майк
Я второй WScript.Sleep, но вы можете попробовать и более длительный период времени. Недавно у меня был сценарий, который отслеживал текстовые файлы, помещенные в папку. При ожидании, я думаю, 300 он все равно пропускал файлы. Я увеличил это значение до 1000 (полная секунда), и это устранило мою проблему.
Попробуйте добавить задержку между извлечением диска и добавлением диска.
wscript.sleep 300
Посмотрим, поможет ли это.
Проблема оказалась до неприличия простой. У меня был другой сценарий в другом объекте групповой политики, который отображал его в старом месте, о котором я не знал. Я исправил эту ситуацию и, конечно же, все заработало.
Спасибо за помощь.