ejecutar exe desde una pagina web

Imagen de plcabgut

Tema: 


Hace un tiempo hemos desarrolado en el trabajo una web para la gestión de las ips de la red de mi organizacion.
Con el listado listado que se genera desde un bd mysql mediante php de la informacion que obteniamos a través de scripts contra el active directory de la organizacion informacion relativa al pc, ip, version de windows,sistema operativo, usuario, telefono, numero de serie del equipo, ultima hora de conexion,... esta informacion se almacena en la base de datos y la mostramos en una lista.

Buscabamos entre otras cosas, el nombre de usuario en la bd y nos devolvia la ip para hacer un Terminal server o un acceso por SCCM

Para evitar ese paso desde la pagina web creamos un enlace a un protocolo definido propio y desde ahi podemos lanzar una conexion de terminal server.
Todo eso que se podria hacer con un Internet Explorer o edge con ActiveX de una forma seguro que mas compleja(que no me he molestado en mirar porque solo funcionaria en esos navegadores), que ahora podemos hacer con mozilla o cualquier otro navegador,ya que lo general que se permite lanzar ningun ejecutable desde una pagina web.

Tras esta disertacion para ponerlo en situación, expongo como lo he realizado.
Primero hacer el protocolo personalizado mediante una modificacoin en el registro para que fuese compatible con W7 Fichero protocolo.reg cuyo contenido es este: (sin los guiones)

------------------------------------------------------------
REGEDIT4

[HKEY_CLASSES_ROOT\TS]
@="URL:Protocolo TS"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\TS\DefaultIcon]
[HKEY_CLASSES_ROOT\TS\shell]
[HKEY_CLASSES_ROOT\TS\shell\open]
[HKEY_CLASSES_ROOT\TS\shell\open\command]
@="\"c:\\protocolos\\ts.bat\" \"%1\""
--------------------------------------------------------------

Lo llamamos TS por Terminal Server y le indicamos que el ejecutable esta en la carpeta c:\protocolos\ y se llama ts.bat (es un bat porque era lo mas sencillo y rapido de desarrollar)

el enlace en la pagina web es como sigue
< td onclick="location.href='TS:10.12.3.12';" title="Conectar por Terminal Server" > < img src="imagenes/rdp_ico.png" >< /td >


El fichero ts.bat que esta en c:\protocolos\ tiene el siguiente codigo:
--------------------------------------------------------------
@echo off
FOR /f "tokens=1,2 delims=:" %%a IN ("%1") do mstsc.exe /v %%b
--------------------------------------------------------------
Despues de ver muchos blogs y leer a gente que no te quería ayudar porque pensaba que ibas a hacer troyanos o cosas similares y demas creo que si mi aportacion ayuda a alguien me doy por satisfecho.