【问题标题】:How to run a program on a specific remote computer如何在特定的远程计算机上运行程序
【发布时间】:2013-11-12 11:31:40
【问题描述】:

我有这行代码 我想通过 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

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

【问题讨论】:

    标签: batch-file parameters vbscript


    【解决方案1】:

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

    按照 microsoft page 中的信息,您将以指向远程计算机的 WMI 服务的 objWMIService 变量结束。那么,

        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(记住,它是远程机器)获取对(远程机器的)进程集合的引用,并创建一个新进程。

    【讨论】:

    • 建立与远程主机的 WMI 连接是另外一行。您应该添加此额外行以使答案自包含。对 MSDN 页面的引用对于获得更深入的了解很有用,但 OP 不必遵循它来从答案中获得有效的解决方案。
    • 用最简单的形式,你是对的,一行,但我不知道用户是否需要提供凭据,或者他们的要求是什么。每个选项的原因和需求在 MSDN 中有更好的解释,包括代码示例,如有必要,OP 可以要求澄清。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2015-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多