Тема: JS, WSH: изменение типа запуска службы
Не могу изменить тип запуска у некоторых служб Windows, к примеру такая служба как "avast! Antivirus" не хочет менять тип запуска ни при использовании методов объекта Shell.Application ни при использовании WMI. Ниже приведён пример, как пытался сделать на WMI... Понимаю, что данный экземпляр класса Win32_Service либо не имеет какого-либо квалификатора, либо этот квалификатор имеет значение, не позволяющее мне менять тип запуска службы... Нигде не могу подробно про это почитать (желательно по-русски). Подскажите, кто знает ссылку, либо поправьте мой скрипт.
var wbemFlagReturnImmediately = 0x10;
var wbemFlagForwardOnly = 0x20;
var objWMIService = GetObject("winmgmts:\\\\.\\root\\CIMV2");
try
{
var colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Service WHERE Name = \"avast! Antivirus\"", "WQL",
wbemFlagReturnImmediately | wbemFlagForwardOnly);
var enumItems = new Enumerator(colItems);
for (; !enumItems.atEnd(); enumItems.moveNext())
{
var objItem = enumItems.item(); // получение экземпляра класса, соотв. службе аваста
WScript.Echo("Тип запуска службы: " + objItem.Name + " = " + objItem.StartMode);
if(objItem.StartMode == "Auto")
{
try
{
objItem.ChangeStartMode("Disabled"); // применял значения "Manual" и "Disabled"
objItem.Put_();
WScript.Echo("Служба остановлена");
}
catch(e)
{
WScript.Echo("Ошибка при изменении метода запуска службы");
}
}
}
}
catch(e)
{
WScript.Echo("Ошибка доступа к коллекции SWbemObjectSet");
}
