我有一个我想用管理权限执行的批处理文件。我创建了一个vbscript文件,使用以下代码以管理员身份启动:
Set UAC = CreateObject("Shell.Application")
UAC.ShellExecute "mybat.bat", "", "", "runas", 1
当我双击我的vbs时,它会发出错误:
我试过了:
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问题?
答案 0 :(得分:1)
XP中没有runas
动词。这是有道理的,因为XP中也没有UAC。
在XP中,您通常会使用open
动词并期望用户成为管理员。如果用户不是管理员,则需要使用runas
命令行工具以管理员用户身份运行新的cmd进程。这将要求您知道管理员用户名和密码。所以最好留给用户处理。
因此,结论是你应该使用Vista及更高版本的runas
动词以及XP及更早版本的open
动词。
答案 1 :(得分:1)
RunAs在XP中。它允许您选择要使用的用户帐户(在Vista中提升)。