【问题标题】:How can I run this VBS script from a shared network drive, from command line on multiple computers?如何从共享网络驱动器、多台计算机上的命令行运行此 VBS 脚本?
【发布时间】:2015-08-27 12:40:13
【问题描述】:

我创建了一个 VBS 脚本并将其放在 IT 在我的办公室使用的共享驱动器上,我想要的是能够通过命令行将它与另一台计算机一起使用而无需编写整个路径,因为它很长,并且击败了脚本的目的。 脚本是这样的:

Set oShell = WScript.CreateObject("WScript.Shell")
oShell.run "cmd.exe /c net stop AeXAgentSrvHost", 1, true
oShell.run "cmd.exe /c net stop ""Altiris Deployment Agent""", 1, true
oShell.run "cmd.exe /c net start AeXAgentSrvHost", 1, true
oShell.run "cmd.exe /c net start ""Altiris Deployment Agent""", 1, true
Set oShell = Nothing'

【问题讨论】:

  • 我很困惑。您的意思是要创建此脚本的快捷方式吗?
  • 不,我想通过 cmd 从我的电脑执行它以在另一台计算机上运行它
  • 您想在远程计算机上生成一个进程?
  • 这样说吧,我的电脑是A,同一个网络中的另一台电脑是B。所以,我想在B上执行脚本 FROM A 比如://hostname run script.vbs,或类似的东西
  • 好的。那么命令行部分呢?您想要使用命令行来生成它,或者您想要一个命令窗口出现在远程用户的PC 上?另外,“不写整个路径,因为它很长”是什么意思。

标签: windows vbscript cmd shared drive


【解决方案1】:

这是一个在 VBScript 中使用 Win32_Service 类来停止远程计算机上的服务的示例。无需在远程 PC 上生成脚本(除非您真的想要)。

Const COMPUTER_NAME = "johndoe1"
Const SERVICE_NAME  = "AeXAgentSrvHost"

Dim objWMI
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & COMPUTER_NAME & "\root\cimv2")

With objWMI.Get("Win32_Service.Name='" & SERVICE_NAME & "'")
    If .Started Then .StopService
End With

有关Win32_Service 类的属性和方法的完整列表,请参见上面的链接。

如果您需要在多台计算机上运行此程序,您有多种选择:

  • 使用硬编码的计算机名称数组
  • 从文本文件、数据库或其他形式的存储中读取列表
  • 使用InputBox() 或读取StdIn 提示计算机名称
  • 将一个或多个名称作为命令行参数传递
  • 等

本网站上的每种方法都应该有大量示例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2022-10-14
    • 2020-11-04
    • 1970-01-01
    相关资源
    最近更新 更多