Войти

Показать полную графическую версию : Скрытое выполнение vbs


Rbuha
26-11-2015, 12:11
Здравствуйте уважаемые, форумчане! Помогите дописать скрипт так, чтобы при его выполнении на рабочем столе ни чего не отображалось.

set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.run "telnet.exe 192.168.1.1"

WScript.Sleep 5000
WshShell.SendKeys"admin" & chr(13)

WScript.Sleep 5000
WshShell.SendKeys"1234" & chr(13)

WScript.Sleep 5000
WshShell.SendKeys"system reboot" & chr(13)

WScript.Sleep 3500
ProcessClose("cmd.exe")
ProcessClose("telnet.exe")
Function ProcessClose(sProcName)
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & sProcName & "'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
End Function

Iska
26-11-2015, 12:57
Используйте второй параметр метода «.Run()»:
Run Method (Windows Script Host) (https://msdn.microsoft.com/en-us/library/d5fk67ky(v=vs.84).aspx)
WshShell (http://www.script-coding.com/WSH/WshShell.html#3.4.)
равный нулю.

Зачем Вы прерываете процессы? Если уж у Вас без проблем работает «.SendKeys()», так и отсылайте «quit» и «exit» соответственно.

Rbuha
26-11-2015, 15:03
Iska,

set WshShell = WScript.CreateObject("WScript.Shell")
Return = WshShell.run ("telnet.exe 192.168.1.1", 0, true)

WScript.Sleep 5000
WshShell.SendKeys"admin" & chr(13)

WScript.Sleep 5000
WshShell.SendKeys"1234" & chr(13)

WScript.Sleep 5000
WshShell.SendKeys"system reboot" & chr(13)

WScript.Sleep 3500
ProcessClose("cmd.exe")
ProcessClose("telnet.exe")
Function ProcessClose(sProcName)
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & sProcName & "'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
End Function

в таком виде вообще не работает.

Зачем Вы прерываете процессы? Если уж у Вас без проблем работает «.SendKeys()», так и отсылайте «quit» и «exit» соответственно.
Такой скрипт скачал с сайта zyxel. Если не трудно, покажите как должно выглядеть.

Iska
26-11-2015, 16:36
в таком виде вообще не работает. »
Третий параметр в Вашем случае должен быть «False», а не «True».

Rbuha
27-11-2015, 05:52
Iska,

set WshShell = WScript.CreateObject("WScript.Shell")
Retum = WshShell.run ("telnet.exe 192.168.1.1",0,False)

WScript.Sleep 5000
WshShell.SendKeys"admin" & chr(13)

WScript.Sleep 5000
WshShell.SendKeys"1234" & chr(13)

WScript.Sleep 5000
WshShell.SendKeys"system reboot" & chr(13)

WScript.Sleep 3500
ProcessClose("cmd.exe")
ProcessClose("telnet.exe")
Function ProcessClose(sProcName)
strComputer = "."
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process Where Name = '" & sProcName & "'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next
End Function

Через ~20 секунд после запуска выдаёт множество сообщений об ошибке
http://i67.fastpic.ru/big/2015/1127/45/b737900bfdb94cdfa3a12d6898afae45.png




© OSzone.net 2001-2012