¿Cómo puedo obtener la ruta a un ejecutable del servicio de Windows SIN usar sc qc?

Necesito consultar un servicio de Windows para la ruta a su ejecutable a través del símbolo del sistema. Creo que la forma en que haría esto es: sc qc myServiceName, pero cuando lo hago, aparece el siguiente error:

[SC] QueryServiceConfig FAILED 122:

The data area passed to a system call is too small.

[SC] GetServiceConfig needs 1094 bytes

Creo que esto significa que el comando sc está enviando una estructura de datos a otra biblioteca que es demasiado pequeña para los datos que deben devolverse. En lugar de que SC vuelva a intentarlo con una estructura de datos más grande (1094 bytes), bombardea y me da este feo mensaje de error. Gracias Micro $ oft.

Entonces, ¿hay una manera de evitar este error? Solo necesito la ruta al ejecutable, pero la analizaré fuera de algún otro texto si es necesario.

Mejor respuesta
También encontré este problema al intentar obtener los detalles de un servicio en el que la ruta al ejecutable era muy larga. This discussion contiene una solución; puede pasar un tamaño de búfer como argumento a sc qc. Es decir, si lo haces:

sc qc <service name> 5000

el error \”el área de datos pasada a una llamada del sistema es demasiado pequeña\” desaparece.

Ver también la página SC QC MSDN:

sc [<ServerName>] qc [<ServiceName>] [<BufferSize>]

dónde:

<BufferSize> Specifies the size (in bytes) of the buffer. The default buffer size is 1,024 bytes.

Por favor indique la dirección original:¿Cómo puedo obtener la ruta a un ejecutable del servicio de Windows SIN usar sc qc? - Código de registro