2013-03-20 2 views
0

, пожалуйста, помогите, я пытаюсь отобразить сообщение на другом компьютере в нашей сети, мы не можем использовать net send, так как не существует в Windows 7, и мы не можем использовать MSG, потому что отключен, и GPO отключит его, если мы включим его. поэтому у меня есть vbscript на компьютере пользователя, который отображает сообщение, и другой vbscript, который отправляет сообщение для отображения. когда я использую этот код, чтобы отправить сообщение, как обычный VBScript работаетvbscript не работает на hta

Dim strMessage, strComputer, strLocalPath, strFile, objShell 
Dim strRemotePath, objShellApp, strTest, sPSEXEC 
strComputer = InputBox("enter computer Name", "create File") 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & 
strComputer & "\root\cimv2") 
Set colComputer = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem") 
Set objShell = CreateObject("WScript.Shell") 
Set objShellApp = CreateObject("Shell.Application") 
currentpath = objShell.CurrentDirectory & "\" 
sPSEXEC = currentPath & "psexec.exe" 
strFile = """c:\windows\notification.vbs""" 
strMessage = InputBox("enter Message", "create File") 
strTest = "\\"&strComputer&" " &"cscript.exe"&" "&strFile&" 
"&"/message:"&Chr(34)&strMessage&Chr(34) 
WScript.Echo strTest 
objShellApp.ShellExecute "cmd.exe","/k "&sPSEXEC&" -s -i -d "&" "&strTest, "","runas",1 

но поставить один и тот же код на ОМТ это попытаться открыть скрипт на компьютере пользователя, но он умирает прежде, чем он может отобразить сообщение

<script Language = VBScript> 
On Error Resume Next 
Sub WindowsLoad 
Dim strMessage, strComputer, strLocalPath, strFile, objShell 
Dim strRemotePath, objShellApp, strTest, sPSEXEC  
strComputer = computerName.Value 
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & 
_strComputer & "\root\cimv2") 
Set colComputer = objWMIService.ExecQuery ("Select * from Win32_ComputerSystem") 
Set objShell = CreateObject("WScript.Shell") 
Set objShellAPP = CreateObject("Shell.Application") 
currentpath = objShell.CurrentDirectory & "\" 
sPSEXEC = currentPath & "psexec.exe" 
strFile = """c:\windows\notification.vbs""" 
strTest = "\\"&strComputer&" " &"cscript.exe"&" "&strFile&" 
_"&"/message:"&Chr(34)&strMessage&Chr(34) 
objShellApp.ShellExecute "cmd.exe","/k "&sPSEXEC&" -s -i -d "&" "&strTest, "", 
_"runas", 1 
End Sub 
</script> 
<Body> 
<div> 
</div> 

Computer Name: <Input align="right" Type = "Text" Name = "computerName"> 
</br> 
</br> 
Message: 
</br> 
<TEXTAREA NAME="Message" COLS=30 ROWS=6> 

</TEXTAREA> 
</br> 
</br> 
<Input Type = "Button" Value = "Send Message" Name = "Run_Button" onClick = "WindowsLoad"><P> 

Помогите?

ответ

1

Прежде всего: глобальный On Error Resume Next - корень всех зла. Do не используйте это, если вы не знаете точно, что вы делаете и как обрабатывать любые ошибки, которые могут возникнуть.

Тем не менее, ваш скрипт, вероятно, умирает, потому что код VBScript в HTA недействителен. Если вы хотите использовать строки продолжения, подчеркивание должен быть на конце линии вы хотите продолжать, а не в начала продолжающейся линии:

Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & 
_strComputer & "\root\cimv2") 

Также вы не можете использовать строку продолжение внутри строковые:

strTest = "\\"&strComputer&" " &"cscript.exe"&" "&strFile&" 
_"&"/message:"&Chr(34)&strMessage&Chr(34) 
+0

спасибо за ваше предложение я извлекал на ошибках резюме рядом, и линия продолжения на обоих местах, но сценарий по-прежнему делает то же самое. – user1766952

+0

Ваш HTA имеет линейные продолжения в 3-х местах. Если вы все равно получите сообщение об ошибке после того, как исправили это, обновите свой вопрос с помощью исправленного кода и фактического сообщения об ошибке. –

+0

Я сожалею, что не смог ответить, но да, я удалил все продолжения строки, проблема в том, что я не получаю никаких ошибок, он просто открывает cmd и показывает часть скрипта на панели инструментов на несколько секунд и тогда он умирает спасибо – user1766952

Смежные вопросы