2013-11-01 179 views
0

我已经得到了该代码的工作行 我想通过VBScript在域环境中的远程计算机上运行共享程序。第一部分没问题,它要求我输入计算机名称,但问题在第二部分。我不知道如何在第一部分输入的远程计算机上运行该程序。如何在特定的远程计算机上运行程序

computer = inputbox ("What computer do you wish to check? (Press Enter if this computer)","Computer") 

set WMI = GetObject("WinMgmts://" & computer) 

If computer="" then computer = "this computer" 



Dim objShell 

Set objShell = WScript.CreateObject("WScript.Shell") 

objShell.Run("""\\compname\Share\progr.exe""") 

Set objShell = nothing 

运行此脚本后,它运行在我的电脑上的程序,而不是在远程计算机上。我想在我从键盘输入的特定计算机上运行该程序。

回答

0

从vbscript中,更好的方法是使用wmi。请参阅this以获取有关如何通过wmi与远程计算机建立连接的完整信息以及您将要面对的问题。

按照microsoft页面中的信息,您将以objWMIService变量指向远程计算机的WMI服务结束。然后,

Set objProcess = objWMIService.Get("Win32_Process") 

Dim strProcess 
    strProcess = "notepad.exe" 

Dim lngReturn, intPID 
    lngReturn = objProcess.Create(strProcess, null, null, intPID) 

    If lngReturn = 0 Then 
     Wscript.Echo strProcess + " started. PID: " & intPID 
    Else 
     Wscript.Echo "Error: " & lngReturn 
    End If 

使用objWMIService(请记住,它的远程机)去的过程集合的引用(远程机器的),并创建一个新的进程。

+0

建立与远程主机的WMI连接是另外一条线。你应该添加这个额外的行来让答案自成一体。对MSDN页面的引用对于获得更深入的洞察力非常有用,但OP没有必要遵循它来从解决方案中获得工作解决方案。 –

+0

以最简单的形式,您是对的,只有一行,但我不知道用户是否需要提供证书或不需要,或者他们的要求是什么。每个选项的原因和需求都可以在MSDN中更好地解释,包括代码示例,如有必要,OP可以要求澄清。 –

相关问题