martes, 24 de mayo de 2016

CMD batch para reiniciar dispositivo en Windows 7 64bits

Tras la instalación de algún programa, el ratón USB fallaba al reiniciar el PC:


El problema se solucionaba deshabilitando y volviendo a habilitar el disposivo desde el administrador de dispositivos, así que en lugar de buscar el origen del problema, decidí taparlo (como buen español).
La solución expuesta es una mezcla de varios foros, pero que escribo por no haber encontrado nada similar en un solo sitio. En forma de resumen, engloba los siguientes pasos:

  1. Conseguir DEVCON
  2. Escribir un archivo de consola
  3. Programar una tarea para que se ejecute al inicio
En primer lugar, devcon es una herramienta que, en línea de comandos, hace lo mismo que el administrador de dispositivos. Antes se podía descargar solo, pero ahora forma parte de un paquete de herramientas de desarrollo que pesa un huevo y no necesitamos. Podemos encontrar fácilmente la herramienta en cuestión googleando un poco. Da un poco de miedo porque utilizas un exe de alguien que no sabes si es de confianza, pero si lo compruebas con el antivirus antes, deberías estar a salvo.
Hay dos versiones incompatibles entre sí (32 y 64 bits). Debes descargar la correspondiente a tu sistema operativo. Otra opción es descargar el giga y pico de la instalación del paquete WDK y coger de ahí el ejecutable "devcon.exe" que nos hace falta.

El siguiente paso es hacerla accesible desde la consola, por lo que debes pegar el ejecutable en la carpeta C:\Windows\System32\
Una vez hecho esto, puedes comprobar que funciona escribiendo "devcon help" en la consola.

El siguiente paso es obtener la información (ID) del dispositivo que falla. Entramos en el administrador de dispositivos (escribiéndolo en la barra de búsqueda del menú inicio).
Botón derecho / propiedades en el dispositivo que quieres reiniciar, pestaña detalles, y en el desplegable de "Propiedad", escoger "Id. de hardware".


El valor que estamos buscando es, en mi caso, DEV_1042. con esta información ya podemos crear el archivo de consola:

Yo lo he creado en C:/ (raiz). Abro la carpeta desde el explorador de windows y creo un documento de texto con el siguiente contenido:


devcon disable *DEV_1042*

devcon enable *DEV_1042*

Primero lo escribí dando un tiempo de espera ("timeout 5"), pero ví que funcionaba igual sin él...
A la hora de guardar el archivo, escogemos *.* Todos los archivos y ponemos el nombre que queramos, con la extensión ".cmd". Por ejemplo: RESETXHCI.cmd

Ya podemos abrir el programador de tareas (igual que antes, buscándolo desde el menú inicio) y añadir una tarea nueva (Acción/Crear Tarea (básica, si queremos usar el asistente)):


Desencadenadores: al iniciar la sesión.
Acciones: Iniciar un programa. Examinar: C:\RESETXHCI.cmd
Condiciones: Desactivar "Iniciar la tarea sólo si el equipo está conectado a la corriente alterna"
Configuración: Desactivar "Detener la tarea si se ejecuta durante más de 3 días"



No hay comentarios:

Publicar un comentario