![]() |
Не запускаются vbs-сценарии с расшаренного каталога
На рабочих станциях класса (Windows XP SP2) при запуске компьютера происходит
автоматический вход в систему с учетной записью student (одна учетная запись на всех). При входе запускается vbs-сценарий, прописанный в локальной политике, который в свою очередь запускает сценарий, расположенный на сервере (Windows Server 2003) в общей папке, следующим образом: ======================================================== Dim Shell Set Shell = WScript.CreateObject("WScript.Shell") Call Shell.Run("cscript.exe \\server\share\scripts.vbs") ======================================================== Проблема в том, что этот сценарий иногда не запускается, причем иногда на одних компьютерах, иногда на других и никакой системности в происходящем не наблюдается. С целью разобраться, что происходит изменил сценарий script.vbs следующим образом: ======================================================== Dim Network Dim FSO Dim FName Dim F Set FSO = CreateObject("Scripting.FileSystemObject") Set Network = WScript.CreateObject("WScript.Network") FName = "\\server\temp\" & UCase(Network.ComputerName) & ".log" Set F = FSO.CreateTextFile(FName, True) Call F.WriteLine("Script '" & WScript.ScriptName & "' was running at " & Now) Call F.Close ======================================================== Т.е., если сценарий отработал, то на сервере в общей папаке temp создается файл, имя которого содержит имя компьютера, на котором был запущен сценарий. Так вот, после перезагрузки 12 компьютеров класса, в папаке temp на сервере появляется обычно 3 - 4 лог-файла, причем каждый раз разные. Вот такая вот проблема. Может кто сталкивался с чем-то подобным или знает как более детально отследить процесс загрузки, чтобы понять что мешает нормальному исполнению сценариев на всех рабочих станциях. |
- в какой конкретно политике прописан скрипт?
- стартовый скрипт хранится локально? если да, то проверьте сначала работу самой политики (лог на локальный диск) - если политика отрабатывает и стартовый скрипт запускается всегда, отлаживайте скрипт в интерактивном режиме под учеткой что и в политике |
Стартовый сценарий прописан в локальной политике.
Однозначно он запускается, т.к. после вызова сценария с сервера выполняются еще действия и они наблюдаемы. Отслеживать интерактивно... тут такая проблема: при запуске _вручную_ стартового сценария, вызов сценария с сервера выполняется всегда, а вот при автоматическом запуске - нет. Добавлю еще информации: В стартовом сценарии на самом деле имеются два вызова двух различных сценариев с сервера. Вызов первого сценария осуществляется, как я уже написал, с указанием пути в формате UNC, т.е. \\server\share\script.vbs Затем идут команды подключения сетевого диска S:. Затем происходит запуск второго сценария с указанием пути в стандартном формате S:\folder\script2.vbs С целью отладки сделал тексты обоих сценариев одинаковыми, т.е. script.vbs и script2.vbs содержат следующее: ======================================================== Dim Network Dim FSO Dim FName Dim F Set FSO = CreateObject("Scripting.FileSystemObject") Set Network = WScript.CreateObject("WScript.Network") FName = "\\server\temp\" & UCase(Network.ComputerName) & ".log" Set F = FSO.CreateTextFile(FName, True) Call F.WriteLine("Script '" & WScript.ScriptName & "' was running at " & Now) Call F.Close ======================================================== Так вот, по тому, что создается в папке temp можно сделать вывод, что script2.vbs исполняется всегда, а script.vbs иногда и каждый раз на произвольных машинах. Складывается впечатление, что сервер сценариев cscript.exe в первом случае просто не успевает дождаться ответа от сервера, чтобы загрузить текст программы и завершает свою работу. |
попробуйте запускать главный скрипт с ожиданием завершения внешних вызовов:
Код:
Dim Shell |
Ожидание завершения работы сценария не дало положительных результатов.
Зато все заработало после установки пятисекундной задержки: Dim Shell Set Shell = WScript.CreateObject("WScript.Shell") WScript.Sleep(5000) Call Shell.Run("cscript.exe \\server\share\scripts.vbs") Все равно вопрос остался: что же мешает нормальной работе сценария? |
Время: 08:32. |
Время: 08:32.
© OSzone.net 2001-