Имя: Пароль:
1C
1С v8
wmi, попытка остановить службу
0 vitek89
 
19.02.13
20:11
Пытаюсь работать с wmi из 1с 8.2, конкретно, остановить службу. Код:

WinMGMT = ПолучитьCOMОбъект("winmgmts:\\" + Computer + "\root\cimv2");
Win32_Service = WinMGMT.ExecQuery("SELECT * FROM Win32_Service");
   
Для Каждого Service ИЗ Win32_Service Цикл
 Если Service.ProcessID = pid Тогда
   Service.StopService();
   Прервать;
 КонецЕсли;
КонецЦикла;

Параметры computer и pid передаются. Если код расположен в модуле объекта обработки с управляемой формой, на сервере, то остановки службы не происходит, хотя все проходит, все значения передаются и корректно происходит возврат из процедуры.
В модуле обычной формы, когда все на клиенте, все срабатывает. Код тот же самый. Комп - локальный, на нем крутится sql сервер 2008 r2, база серверная, на нем же лежит. Подскажите, в чем может быть дело.
1 vitek89
 
19.02.13
20:30
Зачем это все надо?) Есть сервак, на котором работает наша 1ска, на котором мне хотелось бы рестартовать некоторые службы, пароль мне он него никто не дает, а у пользователя usr1cv82 есть хорошие права. Его пароль я тоже не знаю. Может, я сильно перемудрил, подскажите, как еще можно сделать
2 hhhh
 
19.02.13
21:42
(1) обычно у usr1cv82 мало прав. А у вас хорошие. Откуда?
3 Лефмихалыч
 
19.02.13
22:39
(0) ну, во-первых,

Win32_Service = WinMGMT.ExecQuery("SELECT * FROM Win32_Service WHERE ProcessID = "+Формат(pid, "ЧГ0"));


во-вторых, откуда ты взял, что у usr1cv8 есть права хоть какие-то?
4 Лефмихалыч
 
19.02.13
22:41
и службы по имени ищут, а не по ПИДу, который от раза к разу меняется
И, кстати, рестартить манагер лицензий хаспа я бы зело не рекомендовал, если я правильно телпирую
5 vitek89
 
20.02.13
09:09
ААААА черт, реально обычный пользователь, я что-то решил, что он должен быть админом...
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.