Войти

Показать полную графическую версию : Не видно окна Popup если скрипт запускается из планировщика заданий.


megaloman
12-09-2011, 19:54
Уважаемые знатоки! Я написал скрипт, который нечто делает, результат выводит в окно PopUp, при запуске, например, из проводника всё работает. Запланировал скрипт для выполнения с некоторой периодичностью в назначенных заданиях, скрипт работает (вижу на диске результат его работы), но окно Popup не появляется. Можно, конечно, выкрутиться: например, поместить задание в автозагрузку и сделать в скрипте в цикле задержку по времени. Но мне не понятно, в чём дело в принципе?
Тестовый скриптSet FSO = CreateObject("Scripting.FileSystemObject")
Set WS = CreateObject("WScript.Shell")

Set TS = FSO.CreateTextFile("D:\kuku.txt", True)
TS.Close

Do While True

Set TS = FSO.OpenTextFile("D:\kuku.txt", 8)
a = CStr(Now)
TS.WriteLine CStr(a)

TS.Close
If WS.Popup(a, 10, "Test", 1) = 2 Then Exit Do

Loop Windows Server 2003. В назначенных заданиях он запускается не от имени пользователя, который вошел в систему. В файл D:\kuku.txt записывается каждые 10 сек время

ferget
12-09-2011, 20:34
тестовый скрипт, который выводит только окно popup, окно показывает
тестовый скрипт, который совершает действия в файлами и показывает несколько окон, тоже работает

проверялось однократное задание и ежедневное с повторением 5 раз

Petya V4sechkin
12-09-2011, 21:14
megaloman, от какой учетной записи задание и в какой операционной системе?

Iska
12-09-2011, 21:20
Какая ОС, от какой учётной записи исполняется назначенное задание, на Рабочем столе какой учётной записи хотим видеть сообщение, каким способом скрипт добавлялся в «Назначенные задания»?

Update: припоздал ;).

megaloman
13-09-2011, 11:13
Спасибо большое Petya V4sechkin, Iska. Вопрос дополнил тестовым скриптом. Разобрался в чём дело.
Оказывается, если назначенное задание исполняется не от имени пользователя, на рабочем столе которого мы находимся, сообщение не видно. (Интересно, а можно сделать чтобы было видно?) Проблема возникла из-за того, что я не знал пароль пользователя, поэтому сделал назначенное задание от своего имени. Ситуация возникает как Win XP, так и в Win 2003

Iska
13-09-2011, 15:27
megaloman, а если попробовать «at.exe»? С/без «/interactive …»? Задание при этом работает от имени определённой встроенной учётной записи (например, сейчас у меня это «NT AUTHORITY\SYSTEM» под Windows XP SP3). Это старый тип заданий (NT4), работать с ним можно при помощи Wbem класса «Win32_ScheduledJob (http://msdn.microsoft.com/en-us/library/aa394399(v=vs.85).aspx)» (там, кстати, стоит посмотреть на примечания [Remarks] — относительно учётной записи под разные ОС, а также как назначить учётную запись, отличную от умолчальной).

P.S. Как это работает под свежими ОС с их ограничениями — я даже не знаю.




© OSzone.net 2001-2012