![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Скрипт, проверяющий программу и предлагающий ее запустить если она вырубилась |
|
VBS/WSH/JS - Скрипт, проверяющий программу и предлагающий ее запустить если она вырубилась
|
Старожил Сообщения: 282 |
Всем привет
исходные данные: на компе должна работать программа c:programm files/proga.exe периодически она вылетает и ее приходится запускать руками пояснение - прога на удаленном компе и там нет мышки клавиатуры (там тач пад можно пальцем в экран ткнуть), чтобы пользователь смог зам ее запустить (мышкой и клавиатурой прогу запустить можно только из диспетчера задач). Приходится подключаться по тимке и включать им ее. надо: скрипт, который будет, к примеру, каждые 10 минут проверять наличие процесса proga.exe и если такой процесс не обнаружен, выводить окно на экран с предложением запустить программу Да/Нет соответственно при нажатии на Да - запускается proga.exe а при нажатии на Нет скрипт уходит в свой обычный режим и через 10 минут снова предложит запустить прогу. И еще этот скрипт должен выключать процесс експлорера (при вылете программы этой остается окно "Мой компьютер" Option Explicit Dim objWMIService, objProcess, colProcess Dim strComputer, strProcessKill Dim WshShell strComputer = "." strProcessKill = "'explorer.exe'" Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colProcess = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name = " & strProcessKill ) For Each objProcess in colProcess objProcess.Terminate() Next Set WshShell = CreateObject("WScript.Shell") WshShell.Run chr(34) & "c:\Program Files\PROGA.exe" & Chr(34), 0 Set WshShell = Nothing WScript.Quit |
|
------- Отправлено: 08:28, 28-08-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать koresaram, мне не нравится Ваш подход в принципе. Предлагаю свой:
Скрытый текст
Option Explicit
Const strPath2Programm = "C:\Program Files\VideoLAN\VLC\vlc.exe"
Dim objFSO
Dim objWshShell
Dim lngProcessID
Dim intRetValue
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objWshShell = WScript.CreateObject("WScript.Shell")
With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2")
If objFSO.FileExists(strPath2Programm) Then
Do
If .Get("Win32_Process").Create(strPath2Programm, objFSO.GetParentFolderName(strPath2Programm), Nothing, lngProcessID) = 0 Then
WScript.Sleep 1000
objWshShell.AppActivate lngProcessID
.ExecNotificationQuery( _
"SELECT * FROM __InstanceDeletionEvent WITHIN 1 WHERE " & _
"TargetInstance ISA 'Win32_Process' AND " & _
"TargetInstance.ProcessID = '" & CStr(lngProcessID) & "'").NextEvent
intRetValue = objWshShell.Popup("Процесс [" & strPath2Programm & "] был завершён." & vbLf & vbLf & "Запустить процесс снова?", 10, "Повторный запуск процесса", vbYesNo + vbQuestion)
Select Case intRetValue
Case -1, 6 ' Ничего не было нажато, Нажата кнопка «Да»
' Nothing to do
Case Else
Exit Do
End Select
Else
WScript.Echo "Не удалось запустить процесс [" & strPath2Programm & "]."
WScript.Quit 2
End If
Loop
Else
WScript.Echo "Не удалось найти файл [" & strPath2Programm & "]."
WScript.Quit 1
End If
End With
Set objWshShell = Nothing
Set objFSO = Nothing
WScript.Quit 0
Будут вопросы по коду — задавайте. |
Отправлено: 15:13, 28-08-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Crazy Сообщения: 1235
|
Профиль | Отправить PM | Цитировать Цитата Busla:
Цитата:
|
||
------- Отправлено: 15:15, 28-08-2018 | #12 |
Старожил Сообщения: 282
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Busla:
Цитата YuS_2:
но указанный в теме код (вбскрипт) работает на всех. что такое пауершелл я хз ) |
||
------- Отправлено: 16:38, 28-08-2018 | #13 |
Старожил Сообщения: 282
|
Профиль | Сайт | Отправить PM | Цитировать Что-то идет не так )
https://clip2net.com/s/3WklZYF картинка ссылка на климптунет я скопировал код, сохранил его как frontolstart.vbs закачал на кассу и вырубил фронтол. exe (пусть к программе в скрипте поменял с vlc на frontol). Прошло 15 минут - ничего не происходит. Как узнать "подходит ли скрипт под ту среду, которая стоит на кассе"? я не программист, поэтому, надеюсь, понятно, что я хотел сказать ) |
------- Отправлено: 17:16, 28-08-2018 | #14 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата koresaram:
![]() PowerShell — Википедия. Цитата koresaram:
|
||
Отправлено: 17:23, 28-08-2018 | #15 |
Старожил Сообщения: 282
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
сейчас в настройках самой программы фронтол (это и есть кассовая программа) есть 2 варианта - ос (винда) и фронтол (вместо ос). Туда впихнуть наш вбс не получится я так понимаю. Собственно поэтому я излагал свой вариант - скрипт, чекающий наличие фронтол.екзе и, при его остуствии (вылетел фронтол), предлагающий его запустить . |
|
------- Отправлено: 17:34, 28-08-2018 | #16 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата koresaram:
Цитата koresaram:
Цитата koresaram:
«ос (винда)» — просто подменяете ярлык на запуск фронтол ярлыком на запуск скрипта. Если ярлык в Автозагрузке — подменяете там. Если путь в автозапуске реестра — подменяете в реестре. «фронтол (вместо ос)» — открываем оснастку групповой политики, задаём в качестве оболочки пользовательского интерфейса (Custom user interface) наш скрипт в виде: Скрытый текст
![]() ![]() и пользуемся. Естественно, желательно будет добавить код для выхода из системы (или завершения работы системы) при завершении работы скрипта, дабы люди не терялись при пустом экране. Есть домен — ещё проще, всё делаем в одном месте, есть разделение по OU, фильтрация, предпочтения групповой политики и т.п., назначаем только тем, кому надо. Если домена нет, но ОС от Vista и выше — используем множественную групповую политику (Использование множественной локальной групповой политики), не гребя под одну планку пользователей и администраторов машины. В крайнем случае тупо подгружаем куст реестра потребного пользователя, импортируем туда файл реестра с данной политикой, выгружаем куст реестра. |
|||
Отправлено: 18:18, 28-08-2018 | #17 |
Старожил Сообщения: 282
|
Профиль | Сайт | Отправить PM | Цитировать Iska,
тут блин фиг знает как реализовано ( в настройках этого фронтола есть галочка )) "Запускать фронтол вместо ОС" - и все. То есть по идее смотреть реестр на автозагрузку надо. Но. Фишка в чем. Наши "сисадмины" говорят, что подумают как это реализовать ). Думают они уже месяц ) Вот тот код, который я в теме приводил, (мне его подруга написала минут за 5) - если на него сделать ярлык и запихать в "С-Пользователи-Ссылки" - то появляется ярлык вместо избранных ссылок в "Мой компьютер". На него можно нажать и все срабатывает. При этом этот скрипт (приведенный в теме) сисадмины раскидать смогли на все машины, а вот ярлык на этот вбс раскидать на все компы в "С-Пользователи-Ссылки" почему-то нет. Хотя по идее это такой же файл. Собственно отсюда и "появилась" у меня идея сделать такой скрипт, который сам будет "чекать" на предмет запущенности нужной программы и в зависимости от наличия или отсутствия - выводить окно с возможностью запуска программы. |
------- Отправлено: 19:18, 28-08-2018 | #18 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата koresaram:
![]() Цитата koresaram:
![]() Домен у Вас есть? |
||
Отправлено: 19:25, 28-08-2018 | #19 |
Старожил Сообщения: 282
|
Профиль | Сайт | Отправить PM | Цитировать домена наверное нет (это большая локалка. То есть есть айпишники каждой кассы (где-то)
![]() сам скрипт раскидан. на всех кассах он есть. но конкретно ярлык на каждую кассу почему-то не получилось у них ( хотя никаких прав доступа и прочих заморочек там нет (руками я могу зайти в любую кассу - сделать ярлык на этот скрипт и копирнуть его в С/Пользователи/Ссылки и пользователь его начинает видеть и может нажимать. P>S> если я делаю ярлык на скрипт и копирую его (к примеру) себе на свой комп, то путь к ярлыку меняется на тот,где я положил у себя на компе файл. Может так проще будет - как в ярлыке задать абсолютный путь чтобы ярлык всегда ссылался на D://files/frontol.vbs ? Вне зависимости от того, где лежит сам файл frontol.vbs |
------- Отправлено: 19:31, 28-08-2018 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - проверять запущена программа, а если она запущена то закрывать ее | DetFedot | Скриптовые языки администрирования Windows | 4 | 26-02-2018 15:32 | |
CMD/BAT - [решено] Проверка запущена ли программа, если нет то запустить ее... | Svnkill | Скриптовые языки администрирования Windows | 2 | 12-02-2018 13:18 | |
CMD/BAT - [решено] Как запустить программу и тут же ее убить? | Pozia | Скриптовые языки администрирования Windows | 1 | 20-08-2015 12:47 | |
Кто знает такой сканер, программу Hitman Pro ? Она надежная не вирус ли она сама? | micro8 | Лечение систем от вредоносных программ | 0 | 22-09-2010 13:08 | |
Как запустить программу, чтобы пользователь ее невидел? | Kvasia | Microsoft Windows 2000/XP | 11 | 06-05-2006 02:24 |
|