XP中的ShellExecute路径错误 - 无法找到文件

时间:2014-03-28 16:10:23

标签: windows batch-file vbscript

我有一个我想用管理权限执行的批处理文件。我创建了一个vbscript文件,使用以下代码以管理员身份启动:

Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "mybat.bat", "", "", "runas", 1  

当我双击我的vbs时,它会发出错误:

Windows cannot find bat

我试过了:

Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "<path>\mybat.bat", "", "", "runas", 1 

Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "mybat.bat", "", "<path>", "runas", 1 

这些都没有奏效......没有发生任何事情。

这在Windows 7+上运行得很好但在Windows XP上似乎根本不起作用。我在2004年发现了一篇关于这个已知问题的文章,但那是在Sp1中,我有Sp3所以应该修复它。

我将路径目录放入环境变量中,但是当我启动vbs时,它什么也没做。甚至没有弹出命令窗口。我认为如果没有指定的目录,工作目录就被认为是相对的。

我有什么办法可以以管理员身份启动我的bat文件,或者无论如何都要修复这个vbscript问题?

2 个答案:

答案 0 :(得分:1)

XP中没有runas动词。这是有道理的,因为XP中也没有UAC。

在XP中,您通常会使用open动词并期望用户成为管理员。如果用户不是管理员,则需要使用runas命令行工具以管理员用户身份运行新的cmd进程。这将要求您知道管理员用户名和密码。所以最好留给用户处理。

因此,结论是你应该使用Vista及更高版本的runas动词以及XP及更早版本的open动词。

答案 1 :(得分:1)

RunAs在XP中。它允许您选择要使用的用户帐户(在Vista中提升)。