Автор Тема: Выполнение VBScript в отключенной сессии RDP  (Прочитано 5533 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Chel

  • Наш человек
  • Постоялец
  • ***
  • Сообщений: 195
  • Похвалили: 31 раз(а)
  • Откуда: Челябинск
Доброго дня. Нужно периодически на серваке удаленно запускать некую программку и и нажимать в ней кнопки. Изобрел скрипт:
Set wshell = CreateObject("WScript.Shell")
Set iee = wshell.Exec("""C:\Program Files\Internet Explorer\IEXPLORE.EXE"" -nohome http://download.eset.com/download/engine/eav/offline_update_eav.zip")
WScript.Sleep(1000)
wshell.AppActivate(iee.ProcessID)
wshell.SendKeys("{ENTER}")
WScript.Sleep(1000)
wshell.AppActivate iee.ProcessID
wshell.SendKeys("{LEFT}")
WScript.Sleep(700)
wshell.SendKeys("{ENTER}")

В активной сессии все работает, а вот в неактивной не хочет. Программа запускается, но нажатия клавиш не происходит, так и висит в ожидании. Вопрос. Это в принципе винда в неактивной сессии не обрабатывает окна программ и нажатия клавиш? Или нужно идти другим путем?
наша планета называется the Мля
 

Оффлайн KrasCEP

  • Резидент
  • Эксперт
  • ****
  • Сообщений: 2056
  • Похвалили: 451 раз(а)
  • та ко ва се ля ви
  • Откуда: Урал
Chel, Логирование прикрути к скрипту, думается мне для тебя не сложно...
 

Оффлайн Chel

  • Наш человек
  • Постоялец
  • ***
  • Сообщений: 195
  • Похвалили: 31 раз(а)
  • Откуда: Челябинск
И что я там хотел бы увидеть? ID процесса и дошел ли скрипт до конца?
наша планета называется the Мля
 

Онлайн PuRGen

  • Наш человек
  • Эксперт
  • ***
  • Сообщений: 4702
  • Похвалили: 1182 раз(а)
  • Роман
  • Откуда: Камышлов Свердловская обл.
А если не в rdp, а с консоли запустить?
 

Оффлайн suslayer

  • Наш человек
  • Ветеран
  • ***
  • Сообщений: 674
  • Похвалили: 274 раз(а)
  • Откуда: Калуга
А цель какая? Грузить базы eset на сайте с basic авторизацией? Зачем для этого IE? Какой нибудь стильный, модный, молодежный powershell в планировщике с этим прекрасно справится...
powershell -NoLogo -Command "$webClient = new-object System.Net.WebClient; $webClient.Credentials = new-object System.Net.NetworkCredential('user', 'password'); $webClient.DownloadFile('http://download.eset.com/download/engine/eav/offline_update_eav.zip', 'c:\Windows\Temp\offline_update_eav.zip')"
 

Оффлайн Chel

  • Наш человек
  • Постоялец
  • ***
  • Сообщений: 195
  • Похвалили: 31 раз(а)
  • Откуда: Челябинск
А если не в rdp, а с консоли запустить?
Комп привешен под потолком без моника и клавы... С консолью тяжело будет.

...модный, молодежный powershell...
На basic проще и понятней. Но видимо пора за молодежью тянуться... заглубиться в администрирование виндов. За мысль спасибо.
наша планета называется the Мля
 

Онлайн PuRGen

  • Наш человек
  • Эксперт
  • ***
  • Сообщений: 4702
  • Похвалили: 1182 раз(а)
  • Роман
  • Откуда: Камышлов Свердловская обл.
Комп привешен под потолком без моника и клавы... С консолью тяжело будет.
Я VNC в этом случае юзаю, он к консоли цепляется, а не к RDP сессии
 

Онлайн kirkol

  • Активный форумчанин
  • Новичок
  • **
  • Сообщений: 17
  • Похвалили: 4 раз(а)
  • Откуда: Россия
Я это делаю так:
В планировщике создаешь задание, которое выполняется при отключении от пользовательского сеанса (выбираешь в триггерах), эта задача запускает батник:

rem Восстановление интерактивного сеанса после отключения сеанса RDP
%windir%\System32\tscon.exe 1 /dest:console

После этого скрипты будут выполняться в консоли. Если не сработает - поиграйся с цифрой (вместо 1 поставь 0 или 2), короче в этом направлении покопай.
 
Это сообщение считают полезным: Chel

Оффлайн Chel

  • Наш человек
  • Постоялец
  • ***
  • Сообщений: 195
  • Похвалили: 31 раз(а)
  • Откуда: Челябинск
задание, которое выполняется при отключении от пользовательского сеанса
Жаль только в 2003-м недоступно. Но идея хорошая
наша планета называется the Мля
 

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24