utilizadas usuario tiempo services seguridad pide para paquete las informe hay están este ejecutar disponibles credenciales contraseña cierto cambiar cada almacenadas administrador .net configuration service

.net - usuario - ¿Cuál es la mejor manera de cambiar las credenciales de un servicio de Windows utilizando C#



super administrador windows 7 (2)

Aquí hay un método rápido y sucio usando las clases System.Management.

using System; using System.Collections.Generic; using System.Text; using System.Management; namespace ServiceTest { class Program { static void Main(string[] args) { string theServiceName = "My Windows Service"; string objectPath = string.Format("Win32_Service.Name=''{0}''", theServiceName); using (ManagementObject mngService = new ManagementObject(new ManagementPath(objectPath))) { object[] wmiParameters = new object[11]; wmiParameters[6] = @"domain/username"; wmiParameters[7] = "password"; mngService.InvokeMethod("Change", wmiParameters); } } } }

Necesito cambiar las credenciales de un servicio de Windows ya existente usando C #. Soy consciente de dos maneras diferentes de hacer esto.

  1. ChangeServiceConfig, vea ChangeServiceConfig en pinvoke.net
  2. ManagementObject.InvokeMethod utilizando Change como el nombre del método.

Ninguna de las dos parece ser una forma muy "amistosa" de hacerlo y me preguntaba si me estoy perdiendo otra y mejor manera de hacerlo.


ChangeServiceConfig es la forma en que lo hice en el pasado. WMI puede ser un poco raro y solo quiero usarlo cuando no tengo otra opción, especialmente cuando voy a una computadora remota.