Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Скрытое выполнение vbs (http://forum.oszone.net/showthread.php?t=308447)

Rbuha 26-11-2015 12:11 2579012

Скрытое выполнение vbs
 
Здравствуйте уважаемые, форумчане! Помогите дописать скрипт так, чтобы при его выполнении на рабочем столе ни чего не отображалось.
Код:

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 2579018

Используйте второй параметр метода «.Run()»:
Run Method (Windows Script Host)
WshShell
равный нулю.

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

Rbuha 26-11-2015 15:03 2579050

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 2579064

Цитата:

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

Третий параметр в Вашем случае должен быть «False», а не «True».

Rbuha 27-11-2015 05:52 2579267

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 секунд после запуска выдаёт множество сообщений об ошибке


Время: 22:39.

Время: 22:39.
© OSzone.net 2001-