elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Problema al ejecutar bat de inicio en Win XP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Problema al ejecutar bat de inicio en Win XP  (Leído 3,750 veces)
NoVaC

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Problema al ejecutar bat de inicio en Win XP
« en: 16 Febrero 2016, 20:09 pm »

Buenos dias (o noches) a todos,

Os escribo porque, estoy implementando un script de inicio en mi empresa (en batch) con el que pretendo que todo el mundo que inicie con el usuario X se le inicien 2 programas sin necesidad de que toquen nada. Lo he conseguido pero solo en los ordenadores con windows 7. cuando llega a un Pc con windows XP hace caso omiso. menos cuando lo pruebo en local, entonces si funciona... por ello quiero que me digáis  que cosas se os ocurren ya que me estoy volviendo loco.

El codigo es el siguiente.
Código
  1. REM Check Windows Version
  2. ver | findstr /i "5\.0\." > nul
  3. IF %ERRORLEVEL% EQU 0 goto ver_2000
  4. ver | findstr /i "5\.1\." > nul
  5. IF %ERRORLEVEL% EQU 0 goto ver_XP
  6. ver | findstr /i "5\.2\." > nul
  7. IF %ERRORLEVEL% EQU 0 goto ver_2003
  8. ver | findstr /i "6\.0\." > nul
  9. IF %ERRORLEVEL% EQU 0 goto ver_Vista
  10. ver | findstr /i "6\.1\." > nul
  11. IF %ERRORLEVEL% EQU 0 goto ver_Win7
  12. goto warn_and_exit
  13.  
  14. :ver_Win7
  15. :Run Windows 7 specific commands here
  16. REM echo OS Version: Windows 7 (debug line)
  17. if not exist C:\users\xx\Desktop\xxxx.lnk goto :fin
  18. start C:\users\xx\Desktop\xxxx.lnk
  19. :fin
  20. if not exist "C:\Program Files (x86)\xxxxx\xxxxxx\xxxx.exe" goto :end
  21. start /d "C:\Program Files (x86)\xxxxxx\xxxxx\" xxxx.exe
  22. goto end
  23.  
  24. :ver_Vista
  25. :Run Windows Vista specific commands here
  26. REM echo OS Version: Windows Vista (debug line)
  27. goto end
  28.  
  29. :ver_2003
  30. :Run Windows Server 2003 specific commands here
  31. REM echo OS Version: Windows Server 2003 (debug line)
  32. goto end
  33.  
  34. :ver_XP
  35. :Run Windows XP specific commands here
  36. REM echo OS Version: Windows XP (debug line)
  37. cd \
  38. cd \Archivos de programa\xxxxx\xxxxx\
  39. if not exist xxxxx.exe goto :fin
  40. start xxxxx.exe
  41. :fin
  42. cd \
  43. cd \Archivos de programa\xxxxx\xxxxxx\
  44. if not exist xxxxxx.exe goto :final
  45. start xxxxxx.exe
  46. :final
  47. goto end
  48.  
  49. :ver_2000
  50. :Run Windows 2000 specific commands here
  51. REM echo OS Version: Windows 2000 (debug line)
  52. goto end
  53.  
  54. :warn_and_exit
  55. echo Machine OS cannot be determined.
  56.  
  57. :end  
  58.  
Este es el código como he dicho todo funciona menos la parte en XP que en local funciona pero como script de inicio no. También se me ha ocurrido que no sea el código si no temas de permisos, o incluso problema con la dirección relativa ya que c:\xxxx no me lo coge por problemas de espacios en la ruta etc.

En fin daros las gracias por vuestra ayuda y perdón al creador del código de detección de windows, que lo cogi de una pagina francesa que no consigo recordar.


« Última modificación: 17 Febrero 2016, 00:03 am por Eleкtro » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Problema al ejecutar bat de inicio en Win XP
« Respuesta #1 en: 17 Febrero 2016, 00:08 am »

c:\xxxx no me lo coge por problemas de espacios en la ruta

Es un problema común con una sencilla solución, encierra la ruta usando comillas dobles:
Código:
"..\..\ruta relativa"

Haz eso con todas las rutas (tengan espacios o no, dejarlas sin comillas es una mala práctica) y supongo que ya te debería funcionar, en caso contrario, inicia el script desde la consola (no haciendo doble click en el archivo, sino escribiendo el nombre en la consola) para que puedas comprobar el error que se haya producido, y comentanoslo.

Aparte de lo mencionado, puedes simplificar las rutas conocidas reemplazándolas por las variables de entorno %PROGRAMFILES% y/o %PROGRAMFILES(x86)%,
luego también, puedes mejorar la sintaxis de las condicionales ifs ya que no estás utilizando los símbolos de agrupación de comandos y acostumbrarse a eso es peligroso (no en ese script, pero es otra mala práctica que tiende a errores imprevistos), y por último, en el comando FINDSTR es innecesario el uso del parámetro /I pero bueno, todo lo que he mencionado en este último párrafo no tiene importancia respecto al problema.

Saludos!


« Última modificación: 17 Febrero 2016, 00:20 am por Eleкtro » En línea



NoVaC

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: Problema al ejecutar bat de inicio en Win XP
« Respuesta #2 en: 17 Febrero 2016, 18:16 pm »

Si, tienes razón en lo de las comillas, al principio las puse por que en windows 7 se quejaba de los espacios. (por si a alguien le sirve, si lo pones con comillas tienes que poner /d para marcar como ruta o piensa que lo quieres de titulo del cmd). El problema es que el /d de xp....no es tan fiable xD y me daba muchos problemas por eso después de mil pruebas decidí hacerlo paso a paso.

Dicho esto, decir que como no conlleva ningún peligro el código, lo he metido en el servidor para que funcione en todos los ordenadores y para mi sorpresa la mayoría de XP no lo hacían, pero unos cuantos 20% + o - si  ( en cuanto a 7 lo hacen un 90% de ellos). así que asumo que el problema no es de XP en si, si no algo que le este afectando.

¿Se os ocurre algo que pueda impedir el funcionamiento del script de inicio? deciros que estoy empezando en el departamento de informática de esta empresa y las cosas son un poco...¿sencillas?o de configuraciones pobres xD por decirlo así.

Información básica de la red es un dominio en Windows server 2012 practicamente sin configurar, sin subredes ni políticas que puedan afectar. se me ocurre que quizas sean permisos o algo pero, hace mucho que estoy alejado de la informática y estoy algo oxidado así que cualquier idea sera bien recibida.

PD: Elektro muchas gracias por tu pronta respuesta y por ayudarme con tus consejos que me van de perlas para este y futuros scripts. y en cuanto a meterlo a traves del propio cmd me dice que genial, lo hace todo y es fantastico pero cuando lo intento por red continua sin ir.
« Última modificación: 17 Febrero 2016, 18:19 pm por NoVaC » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.885



Ver Perfil
Re: Problema al ejecutar bat de inicio en Win XP
« Respuesta #3 en: 17 Febrero 2016, 20:04 pm »

Intenta publicar el código con las rutas reales sin censurar, yo creo que debe ser un simple problema de sintaxis, que te falle en un S.O. a mi me sugiere que la ruta cambia, y como hay algo incorrecto en la ruta pues... falla. Pero vamos, es solo una hipótesis, sin testearlo podría equivocarme.

De todas formas, examinando detenidamente el código, todos los CD son innecesarios, y estás utlizando la sintaxis incorrecta para el comando Start, si no especificas el primer parámetro de dicho comando, tenderá a dar error según como lo escribas, y aparte tampoco parece que necesites usar el parámetro /D.

Ten presente que algunos comandos (como el Start) tienen ligeros cambios/bugfixes de una versión a otra con respecto a la sintaxis que aceptan, lo que en Win7 te funciona bien en XP te podría dar error de sintaxis por que si en el comando Start, pero bueno, eso es solo si se siguen malas prácticas al escribir la sintaxis, con este código eso no debería pasar.

Prueba el siguiente código:
Código
  1. @Echo OFF & Title titulo
  2.  
  3. :: Determine Windows Version.
  4. (ver.exe | findstr.exe "5\.0\.")1>Nul && (Call :Win2k)
  5. (ver.exe | findstr.exe "5\.1\.")1>Nul && (Call :WinXP)
  6. (ver.exe | findstr.exe "5\.2\.")1>Nul && (Call :Win2003)
  7. (ver.exe | findstr.exe "6\.0\.")1>Nul && (Call :WinVISTA)
  8. (ver.exe | findstr.exe "6\.1\.")1>Nul && (Call :Win7)
  9.  
  10. Pause&Exit
  11.  
  12. :Win2k
  13. GoTo :EOF
  14.  
  15. :WinXP
  16. Set "filepath=.\RUTA\xxxxx.exe"
  17. If Exist "%filepath%" (Start "" "%filepath%")
  18. GoTo :EOF
  19.  
  20. :Win2003
  21. GoTo :EOF
  22.  
  23. :WinVISTA
  24. GoTo :EOF
  25.  
  26. :Win7
  27. Set "filepath1=%UserProfile%\Desktop\xxxx.lnk"
  28. Set "filepath2=%ProgramFiles(x86)%\xxxxx\xxxxxx\xxxx.exe" & REM Si vas a correr esto en algún Windows 7 de 32-Bits entonces no uses la variable de entorno.
  29. If Exist "%filepath1%" (Start "" "%filepath1%")
  30. If Exist "%filepath2%" (Start "" "%filepath2%")
  31. GoTo :EOF

Saludos
« Última modificación: 17 Febrero 2016, 20:16 pm por Eleкtro » En línea



NoVaC

Desconectado Desconectado

Mensajes: 22


Ver Perfil
Re: Problema al ejecutar bat de inicio en Win XP
« Respuesta #4 en: 23 Febrero 2016, 13:14 pm »

Muchas gracias Elektro, no solo me solucionas muchos problemas si no que ademas me optimizas el codigo? Eres un grande.

Muchas gracias por tu ayuda.

PD: perdona que haya tardado en responder pero llevo desde la semana pasada de marron en marron y no habia tenido tiempo. gracias por todo.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
problema para escribir registro para ejecutar al inicio
Programación Visual Basic
USUARIO_DE_SOFTWARE_LIBRE 2 2,198 Último mensaje 28 Noviembre 2005, 13:39 pm
por USUARIO_DE_SOFTWARE_LIBRE
Ejecutar un bat... Al inicio de Windows
Programación C/C++
amchacon 4 5,506 Último mensaje 26 Marzo 2013, 22:09 pm
por avesudra
ejecutar programa al inicio
GNU/Linux
hdarko 2 2,646 Último mensaje 24 Noviembre 2013, 11:57 am
por hdarko
Problema de inicio de meterpreter
Hacking
Eramirez 0 2,264 Último mensaje 4 Agosto 2021, 19:25 pm
por Eramirez
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines