System Administration 4 min de lectura 26 de marzo de 2026

Cómo forzar el reinicio del servicio WIA cuando está bloqueado

Procedimiento paso a paso para desbloquear y forzar el reinicio del servicio Windows Image Acquisition (WIA) cuando los métodos tradicionales fallan.

Solución en "Dos Clics" (TL;DR)

Soluciones paso a paso para forzar el reinicio del servicio Windows Image Acquisition (WIA) cuando presenta errores de estado atascado.

Durante una jornada de mantenimiento técnico en DOSCLIC con equipos de digitalización, me topé con un problema recurrente pero frustrante: el servicio de Adquisición de imágenes de Windows (WIA), identificado internamente como stisvc, se quedó completamente bloqueado. Cuando este servicio entra en un estado colgado, las aplicaciones de escaneo dejan de responder y las herramientas del sistema habituales no logran restablecerlo.

1. El intento estándar y la aparición del bloqueo

En circunstancias normales, el servicio WIA puede gestionarse mediante la consola gráfica services.msc o con órdenes sencillas de línea de comandos. Sin embargo, cuando el hilo del servicio se congela debido a una instrucción de lectura fallida o un controlador colgado, los comandos habituales se detienen por completo.

Al intentar detener el servicio con el comando tradicional en la consola de comandos:

Símbolo del sistema (CMD)
net stop stisvc

El sistema devolvió inmediatamente la siguiente falla de control:

Error detectado: The service could not be controlled in its present state. More help is available by typing NET HELPMSG 2189.

Para descartar un problema de permisos o de capa de comandos, intenté forzar el reinicio utilizando PowerShell con privilegios elevados:

PowerShell
Restart-Service -Name stisvc -Force

El resultado fue una excepción ServiceCommandException similar:

PowerShell Error Output
Restart-Service : Service 'Windows Image Acquisition (WIA) (stisvc)' cannot be stopped due to the following error: Cannot stop stisvc service on computer '.'.
At line:1 char:1
+ Restart-Service -Name stisvc -Force
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (System.ServiceProcess.ServiceController:ServiceController) [Restart-Service], ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStopService,Microsoft.PowerShell.Commands.RestartServiceCommand

2. Inspección del estado real del servicio

El código de error NET HELPMSG 2189 confirma que el servicio se encuentra en un estado ambiguo, generalmente en bucle entre STOP_PENDING o START_PENDING. Para confirmar este comportamiento, revisé la información extendida del proceso con la herramienta sc:

Símbolo del sistema (CMD)
sc query stisvc

Cuando el valor de STATE muestra un estado pendiente de detención o inicio, el administrador de servicios de Windows se niega a enviar nuevas señales de control por vías convencionales para evitar la corrupción de memoria.

3. La solución: Forzar la finalización del proceso asignado (PID)

Dado que el administrador de servicios no puede detener la tarea de forma limpia, la vía efectiva consiste en localizar el identificador de proceso (PID) asociado al contenedor del servicio y terminarlo abruptamente.

Paso 1: Consultar el PID del servicio

Ejecuté la consulta extendida para obtener el PID actual:

Símbolo del sistema (CMD)
sc queryex stisvc

En el bloque de información devuelto, ubiqué la línea marcada como PID (por ejemplo, 1234).

Paso 2: Matar el proceso atascado

Con el identificador a la mano, utilicé la herramienta taskkill con la marca de finalización forzada (/F):

Símbolo del sistema (CMD)
taskkill /PID  /F
Consejo Práctico: Sustituye <PID> por el número obtenido en el paso anterior. El parámetro /F destruye el proceso de forma inmediata, liberando las mallas de memoria y puertos USB retenidos.

Paso 3: Reiniciar el servicio WIA

Una vez destruido el proceso colgado, el estado en el administrador de servicios regresa automáticamente a STOPPED, permitiendo iniciarlo limpiamente:

Símbolo del sistema (CMD)
net start stisvc

4. Alternativas para lidiar con dependencias del servicio

En ocasiones, WIA no responde porque un servicio secundario bloquea su cierre. Para intentar cerrar la cadena completa de dependencias de forma directa, se puede pasar el argumento /y al detener el servicio:

Símbolo del sistema (CMD)
net stop stisvc /y
net start stisvc

Cabe destacar que WIA depende fuertemente de servicios críticos del sistema como Llamada a procedimiento remoto (RPC) (rpcss) y Detección de hardware de Shell. Intentar detener rpcss directamente mediante net stop rpcss no está permitido por el propio kernel de Windows debido al riesgo de colapsar la sesión actual, por lo que la matanza selectiva por PID sigue siendo el camino más seguro.

5. Origen de la falla y medidas preventivas

Estos bloqueos en el servicio WIA suelen responder a tres causantes principales:

  • Controladores obsoletos o corruptos: Incompatibilidades entre el kernel de Windows y el driver TWAIN/WIA del fabricante del escáner.
  • Software propietario de digitalización: Módulos en segundo plano de marcas como HP, Epson o Canon que no liberan los recursos del escáner tras finalizar la captura.
  • Inestabilidad en la conexión física: Microdesconexiones en puertos o cables USB que dejan las solicitudes I/O del servicio en espera infinita.

Asegurarse de mantener el tipo de inicio de WIA en Automático y utilizar controladores WHQL minimiza significativamente la frecuencia con la que el servicio se detiene.

La historia detrás de la nota

Aprender a forzar el cierre de servicios mediante `sc queryex` y `taskkill` evita tener que reiniciar estaciones de trabajo completas en entornos de producción, reduciendo el tiempo de inactividad durante tareas críticas de digitalización.