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

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

Оффлайн Chel

  • Наш человек
  • Постоялец
  • ***
  • Сообщений: 111
  • Похвалили: 21 раз(а)
  • Откуда: Челябинск
Доброго дня. Нужно периодически на серваке удаленно запускать некую программку и и нажимать в ней кнопки. Изобрел скрипт:
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}")

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

Оффлайн KrasCEP

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

Оффлайн Chel

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

Онлайн PuRGen

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

Оффлайн suslayer

  • Наш человек
  • Ветеран
  • ***
  • Сообщений: 528
  • Похвалили: 162 раз(а)
  • Откуда: Калуга
А цель какая? Грузить базы 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

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

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

Онлайн PuRGen

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

Оффлайн kirkol

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

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

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

Оффлайн Chel

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

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15