Мне нужно проверить и отредактировать службу Windows StartName
.
Я нашел это решение с помощью WMI API:
using (var service = new ManagementObject($"Win32_Service.Name = '{my_name}'"))
{
using (var inParams = service.GetMethodParameters("Change"))
{
inParams["StartName"] = value;
ManagementBaseObject outParams = service.InvokeMethod("Change", inParams, null);
outParams.Dispose();
}
}
Когда я вызываю этот код с помощью нового приложения консольного проекта с Visual Studio, который был запущен от имени администратора, он работает нормально.
Но когда я вызываю его службой Windows, которая вошла в систему как локальная система, я получаю исключение:
System.Management.ManagementException: ошибка загрузки поставщика. в
System.Management.ManagementException.ThrowWithExtendedInfo (ManagementStatus
errorCode) в System.Management.ManagementObject.InvokeMethod (String
methodName, ManagementBaseObject inParameters, InvokeMethodOptions
варианты) ...
Что я пропустил в этом случае?
Какие разрешения / состояние приложения или что мне нужно изменить, чтобы редактировать службу StartName
службой Windows?