|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - Проверка, запущено ли приложение от конкретного Пользователя |
|
VBS/WSH/JS - Проверка, запущено ли приложение от конкретного Пользователя
|
Старожил Сообщения: 225 |
Добрый день. Так как у меня файловый вариант 1С мне приходиться держать одну сессию данного приложения открыто. Очень хорошо с этим справлялся вот этот скрипт
[code][/Option Explicit Const Above_Normal = 32768 Dim objSWbemObjectEx Dim lngProcessID With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2") If .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv8.exe'").Count = 0 Then Set objSWbemObjectEx = .Get("Win32_ProcessStartup") objSWbemObjectEx.PriorityClass = Above_Normal ' Create method of the Win32_Process class (Windows) (http://msdn.microsoft.com/en-us/library/aa389388(v=vs.85).aspx) If .Get("Win32_Process").Create( _ """C:\Program Files (x86)\1cv82\8.2.16.352\bin\1cv8.exe""", _ "C:\Program Files (x86)\1cv82\8.2.16.352\bin", _ objSWbemObjectEx, _ lngProcessID _ ) <> 0 Then WScript.Echo "Can't start process [""%Program Files (x86)\1cv82\8.2.16.352\bin""." End If Set objSWbemObjectEx = Nothing End If End With WScript.Quit 0 CODE] но беда в том, что у меня терминальный сервер и если один из пользователей имеет запущенный процесс 1С то данный скрипт не выполняется. Так как в данных скриптах я не силен прошу подсказать, что добавить в скрипт или переделать, что бы проверялся на запущенный процесс 1С только от Имени Администратора и если нет то запустить. Спасибо. |
|
Отправлено: 11:12, 16-03-2015 |
Старожил Сообщения: 225
|
Профиль | Сайт | Отправить PM | Цитировать Const Above_Normal = 32768
Dim objSWbemObjectEx Dim lngProcessID Dim colProcesses Dim bUser Dim strNameOfUser Dim UserName UserName = CreateObject("WScript.Network").UserName With WScript.CreateObject("WbemScripting.SWbemLocator").ConnectServer(".", "root\cimv2") Set colProcesses = .ExecQuery("SELECT * FROM Win32_Process WHERE Name = '1cv8.exe'") Set objSWbemObjectEx = .Get("Win32_ProcessStartup") bUser = False For Each objProcess in colProcesses Return = objProcess.GetOwner(strNameOfUser) If Return = 0 Then If strNameOfUser = UserName Then bUser = True End If End If Next If Not bUser Then objSWbemObjectEx.PriorityClass = Above_Normal ' Create method of the Win32_Process class (Windows) (http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx) If .Get("Win32_Process").Create( _ """C:\Program Files (x86)\1cv82\8.2.16.352\bin\1cv8.exe""", _ "C:\Program Files (x86)\1cv82\8.2.16.352\bin", _ objSWbemObjectEx, _ lngProcessID _ ) <> 0 Then WScript.Echo "Can't start process [""%Program Files (x86)\1cv82\8.2.16.352\bin""." End If Set objSWbemObjectEx = Nothing End If End With WScript.Quit 0 |
Отправлено: 15:45, 16-03-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать В случае непустой коллекции «"SELECT * FROM Win32_Process WHERE Name = '1cv8.exe'"» — проверьте каждый из объектов, её составляющих, методом «.GetOwner()»: GetOwner method of the Win32_Process class (Windows) на предмет совпадения имени пользователя и домена владельца процесса с именем текущего пользователя/домена.
Update: ага, вижу, уже сами нашли ![]() |
Отправлено: 15:55, 16-03-2015 | #3 |
Старожил Сообщения: 225
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Iska:
|
|
Отправлено: 17:02, 16-03-2015 | #4 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Ярлык на смену пользователя/на вход в конкретного пользователя. | dance-saf | Microsoft Windows 8 и 8.1 | 1 | 30-05-2014 01:31 | |
Ошибка - [решено] Приложение не было запущено, поскольку оно некорректно настроено | Vygov | Microsoft Windows 2000/XP | 194 | 10-11-2013 05:06 | |
Log/Monitoring - Отслеживание трафика конкретного пользователя | GuitarFan | Сетевые технологии | 13 | 20-10-2013 01:18 | |
7554 "Приложение не было запущено.." | ArtemBeGooD | Игры | 2 | 30-03-2012 19:14 | |
PowerShell - Поиск в определенной группе конкретного пользователя | ejik_off | Скриптовые языки администрирования Windows | 1 | 26-12-2011 10:15 |
|