¿Cómo desinstalar un servicio de Windows cuando no queda ningún ejecutable en el sistema?

StackOverflow https://stackoverflow.com/questions/330836

Pregunta

¿Cómo desinstalo un servicio de Windows cuando no queda ningún ejecutable en el sistema? No puedo ejecutar installutil -u ya que no queda ejecutable en el sistema. Todavía puedo ver una entrada para el servicio en la consola de Servicios.

La razón de este estado probablemente se deba a un problema en el paquete msi que no elimina el servicio correctamente, pero ¿cómo lo soluciono una vez que el servicio está en este estado?

¿Fue útil?

Solución

Debería poder desinstalarlo usando sc.exe (creo que está incluido en el Kit de recursos de Windows) ejecutando lo siguiente en un " administrador " símbolo del sistema:

sc.exe delete <service name>

donde <service name> es el nombre del servicio en sí tal como lo ve en la consola de administración de servicios, no del exe.

Puede encontrar sc.exe en la carpeta Sistema y necesita privilegios administrativos para ejecutarse. Más información en este artículo de Microsoft KB .

Alternativamente, puede llamar directamente a DeleteService () api. Esa manera es un poco más compleja, ya que necesita obtener un identificador para el administrador de control de servicio a través de OpenSCManager () y así sucesivamente, pero por otro lado te da más control sobre lo que está sucediendo.

Otros consejos

Eliminar el servicio de Windows a través del registro

Es muy fácil eliminar un servicio del registro si conoce la ruta correcta. Así es como hice eso:

  1. Ejecute Regedit o Regedt32

  2. Vaya a la entrada del registro "HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services"

  3. Busque el servicio que desea eliminar y elimínelo. Puede consultar las claves para saber qué archivos estaba usando el servicio y eliminarlas también (si es necesario).

Eliminar el servicio de Windows a través de la ventana de comandos

Alternativamente, también puede usar el símbolo del sistema y eliminar un servicio usando el siguiente comando:

sc eliminar

También puede crear servicio utilizando el siguiente comando

sc create " MorganTechService " binpath = " C: \ Archivos de programa \ MorganTechSPace \ myservice.exe "

Nota: es posible que deba reiniciar el sistema para actualizar la lista en el administrador de servicios.

encontrado aquí

Acabo de probar en Windows XP, funcionó

computadora local: sc \\. eliminar [nombre-servicio]

  Deleting services in Windows Server 2003

  We can use sc.exe in the Windows Server 2003 to control services, create services and delete services. Since some people thought they must directly modify the registry to delete a service, I would like to share how to use sc.exe to delete a service without directly modifying the registry so that decreased the possibility for system failures.

  To delete a service: 

  Click “start“ - “run“, and then enter “cmd“ to open Microsoft Command Console.

  Enter command:

  sc servername delete servicename

  For instance, sc \\dc delete myservice

  (Note: In this example, dc is my Domain Controller Server name, which is not the local machine, myservice is the name of the service I want to delete on the DC server.)

  Below is the official help of all sc functions:

  DESCRIPTION:
    SC is a command line program used for communicating with the
    NT Service Controller and services. 
  USAGE:
          sc

Mi forma favorita de hacerlo es usar la aplicación Sysinternals Autoruns . Simplemente seleccione el servicio y presione eliminar.

Aquí está el script de PowerShell para eliminar un servicio foo

$foo= Get-WmiObject -Class Win32_Service -Filter "Name='foo'"
$foo.delete()

Cree una copia de los ejecutables del mismo servicio y péguelo en la misma ruta del servicio existente y luego desinstálelo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top