如何从Windows Server 2003上的vbscript启动.exe

时间:2017-02-23 17:11:34

标签: vbscript windows-server-2003

我有一个需要在各种不同版本的Windows服务器上运行的脚本,包括2003.是的,我已经知道它“不受支持”了。

我的脚本必须在隐藏窗口中启动可执行文件(尽管下面没有显示执行此操作的代码,因为我被要求将其减少到最低限度)。我目前正在使用win32_Process.Create,如下所示:

errReturn

这在2008年和2012年都运行正常,但它在2003年失败,错误代码3在runas中返回“权限不足”。当作为普通用户运行cmd.exe时它也有效,但父程序是服务check_mk_agent.exe,因此不是“普通用户”。此脚本作为check_mk_agent.exe的插件之一运行。

我现在要研究如何使用{{1}}来尝试模拟以与服务运行相同的用户身份运行它。

1 个答案:

答案 0 :(得分:0)

从vbscript启动.exe的两种最常用方法是WScript.Shell 运行 Exec 方法。两者之间的主要区别在于您可以使用Exec方法捕获StdIn / StdOut / StdErr,因为应用程序在子命令shell中运行。

执行例子:

Set WshShell = CreateObject("WScript.Shell")
Set oExec = WshShell.Exec("calc")

运行示例:

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "%windir%\notepad " & WScript.ScriptFullName