/// <summary> /// Uninstalls the service from the system. /// </summary> /// <param name="svcInfo">The service information object. Name property is used</param> /// <returns></returns> public ReturnValue UninstallService(ServiceInfo service) { ManagementObject svc = service.ManagementObject() ?? GetService(service.Name); return InvokeMethod(svc, "delete"); }
/// <summary> /// Stops the service. /// </summary> /// <param name="service">The service information object. Name property is used</param> /// <returns></returns> public ReturnValue StopService(ServiceInfo service) { ManagementObject svc = service.ManagementObject() ?? GetService(service.Name); return InvokeMethod(svc, "StopService"); }
/// <summary> /// Changes the specified service username, password or path. /// </summary> /// <param name="service">The service to update.</param> /// <returns></returns> public ReturnValue Change(ServiceInfo service) { if (!string.IsNullOrWhiteSpace(service.Password) && !Security.IsValidLogin(service.Username, service.Password, Server)) return ReturnValue.ServiceLogonFailure; //ensure user account has logon as service rights Security.SetLogonAsAService(service.Username, Server); ManagementObject svc = service.ManagementObject() ?? GetService(service.Name); ManagementClass mc = ScopedClass("Win32_Service"); mc.Scope = Scope(); ManagementBaseObject inParams = mc.GetMethodParameters("Change"); if (!string.IsNullOrWhiteSpace(service.Password)) { inParams["StartName"] = service.Username; inParams["StartPassword"] = service.Password; } inParams["PathName"] = service.PathName; return InvokeMethod(svc, "Change", inParams); }