Autor
|
Tema: Script para ejecutar oculto un bat (Leído 5,727 veces)
|
all
Desconectado
Mensajes: 48
que hay people
|
Hola amigos y gracias de antemano. De mas esta decirles que no soy muy bueno en esto de la programacion de script, pero la verdad me viene una duda y aunque lo he googleado no me ha aparecido nada. Sabemos que para ejecutar un bat oculto con un script seria: set objshell = createobject("wscript.shell") objshell.run "Payload.bat",vbhide
Bien pero para eso tiene que estar el bat en el mismo lugar del script. La pregunta seria como hago para que el script este en otra carpeta, el bat en una usb x y que cuando ponga la usb el script me encuentre la usb y el bat y lo ejecute. No se si me hago explicar Lo que quiero hacer es ejecuta un bat que este en la usb en la raiz y poner el script en una carpeta, que cuando lo ejecute, me localize la usb y el bat y lo ejecute de modo oculto. Como les digo gracias de antemanos
|
|
« Última modificación: 12 Febrero 2017, 21:52 pm por Eleкtro »
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Hola. Con el intrumental de administración de windows (a.k.a WMI) puedes hacer todo lo que necesitas. Puedes suscribirte a eventos del sistema, como al evento de inserción o la extracción de dispositivos extraibles, y obtener la información deseada del dispositivo. Lee sobre las classes de WMI en la MSDN: https://msdn.microsoft.com/en-us/library/aa394084%28v=vs.85%29.aspxAquí abajo te dejo este código que hice, completamente funcional. Adáptalo a tus necesidades si es necesario. Option Explicit Dim dirPath, filename, driveLetter, fullFilePath, _ fso, shell, wmi, wmiQuery, wmiEvent dirPath = "" filename = "Payload.bat" Set fso = CreateObject("Scripting.FileSystemObject") set shell = createobject("wscript.shell") Set wmi = GetObject("winmgmts:\\.\root\cimv2") Set wmiQuery = wmi.ExecNotificationQuery( _ "Select * From __InstanceCreationEvent Within 2" & _ " Where TargetInstance ISA 'Win32_LogicalDisk'") Do While True Set wmiEvent = wmiQuery.NextEvent() If (wmiEvent.TargetInstance.DriveType = 2) And _ (wmiEvent.Path_.Class = "__InstanceCreationEvent") Then driveLetter = wmiEvent.TargetInstance.DeviceId fullFilePath = driveLetter & "\" & dirPath & filename Wscript.Echo "Drive " & driveLetter & " has been connected." If ( fso.FileExists(fullFilePath) ) Then Wscript.Echo "Running " & """" & fullFilePath & """" & "..." Call shell.run(fullFilePath, 0) ' Exit Do Else Wscript.Echo """" & fullFilePath & """" & " not found." End If End If Set wmiEvent = Nothing Loop
¡Saludos!
|
|
« Última modificación: 13 Febrero 2017, 12:17 pm por Eleкtro »
|
En línea
|
|
|
|
all
Desconectado
Mensajes: 48
que hay people
|
Genial, pero la verdad, no sale oculto, me pone carteles que me haria falta no salieran. Te pregunto y si quisiera que no me lo agregara a un evento sino, que pusiera el bat en la raiz del usb X, y que teniendo el script en una carpeta de ese mismo usb, se me ejecutara oculto el bat, como lo puedo hacer
|
|
|
En línea
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
no sale oculto, me pone carteles que me haria falta no salieran. No se a que te refieres por "carteles". El código de arriba llama a la función wscript.shell.run() pasándole la constante vbHide (0), es decir, oculto. En un foro de programación la información detallada es esencial para poder entender sin malinterpretaciones y ayudar a resolver un problema. Intenta ser más específico.
Te pregunto y si quisiera que no me lo agregara a un evento sino Se te ha entregado practicamente todo el trabajo regalado con el script de arriba. Como ya dije en su momento, puedes adaptarlo a tus necesidades. No voy a modificar el script que compartí, pero si puedo guiarte en como puedes implementar por ti mismo las modificaciones que necesites llevar a cabo... que pusiera el bat en la raiz del usb X, y que teniendo el script en una carpeta de ese mismo usb, se me ejecutara oculto el bat, como lo puedo hacer Puedes copiar un archivo llamando al método FileSystemObject.Copy(). Aquí tienes la documentación y ejemplos de uso: Lo de ejecutar un archivo en modo oculto ya sabes hacerlo, pero aun así te dejo por aquí la documentación oficial de MSDN también: ¡Saludos!
|
|
« Última modificación: 13 Febrero 2017, 04:46 am por Eleкtro »
|
En línea
|
|
|
|
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
Hola. Por lo que mencionas, es obvio que estás teniendo alguna dificultad para comprender lo que ocurre y como solucionarlo. Entonces deberías tratar de leer algún tutorial para aprender el uso básico del lenguaje que estás manipulando antes de intentar ponerte a trabajar con códigos que te resulten difíciles. Solo es un consejo personal. En el código que te mostré arriba, para que no se te muestren las cajas de mensaje simplemente debes comentar (o borrar) las lineas nº 28 y nº 32... donde dice Wscript.Echo .... O también puedes solucionarlo utilizando CScript.exe en lugar de WScript.exe/doble-click para ejecutar el script. Lee esto (la documentación es para el lenguaje VB.NET, pero se aplica a VBS también): ¡Saludos!
|
|
« Última modificación: 13 Febrero 2017, 12:28 pm por Eleкtro »
|
En línea
|
|
|
|
all
Desconectado
Mensajes: 48
que hay people
|
Todo ok, gracias, supero mis espectativas. Agradecido
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Script para ejecutar WebBrick en Startup (FEDORA)
GNU/Linux
|
juancho77
|
0
|
2,987
|
13 Julio 2010, 02:58 am
por juancho77
|
|
|
script para ejecutar un bat al escribir una palabra
Scripting
|
IMPEESA
|
1
|
4,027
|
16 Junio 2011, 03:04 am
por Edu
|
|
|
Script para ejecutar google chrome...
« 1 2 »
Scripting
|
gandalf2706
|
12
|
21,285
|
3 Enero 2014, 05:08 am
por Eleкtro
|
|
|
Script para ejecutar varias comandos por teclado al mismo tiempo.
Scripting
|
xyon126
|
1
|
5,525
|
30 Junio 2013, 00:24 am
por Eleкtro
|
|
|
Script VBS para ejecutar desde Unidad USB
Programación Visual Basic
|
QXT
|
0
|
2,694
|
8 Noviembre 2013, 13:07 pm
por QXT
|
|