如何允许 VB 脚本在管理员帐户上运行

如何允许 VB 脚本在管理员帐户上运行

我在尝试运行 VBscript 时遇到了问题。我正在使用 Windows 8.1 update 1 Enterprise,连接到 Enterprise 域,并使用域帐户登录。此域帐户已添加到管理员组。

我的 VBscript 必须在 Program Files (x86) 目录中创建一个文件夹和一个日志文件。如果我使用本地管理员帐户双击运行此 VBscript,它会完美运行。但如果我尝试使用我的域帐户运行相同的 VBscript,我会得到错误消息访问被拒绝

一种解决方案是完全停用 UAC(将 enableLUA 注册表值设置为 1),但此方法会阻止 Modern UI 应用程序,而我们需要保持这些应用程序的执行。

是否可以在任何管理员帐户上授予对 VBScripts 执行的完全控制权,就像在本地管理员内置帐户下一样?我还没有找到这个问题的任何解决方案,我无法相信没有解决方案,特别是在企业中。

答案1

我通常这样做的方法是将以下代码粘贴到脚本的顶部:

If Not WScript.Arguments.Named.Exists("elevate") Then
  CreateObject("Shell.Application").ShellExecute WScript.FullName _
    , WScript.ScriptFullName & " /elevate", "", "runas", 1
  WScript.Quit
End If

这样,如果我以非管理员身份启动 VBS - 它会尝试运行,注意到我不是管理员,然后重新启动 - 提示我以管理员身份运行,然后我们就可以开始了。

我知道这很痛苦,但这是一个相当简单的解决方案。

希望这可以帮助

答案2

如果您使用命令行,此技巧很有用:

  1. 转到System32(或Syswow4对于 x64)
  2. 复制cscript.exewscript.exe命名它们csadmin.exewsadmin.exe
  3. 打开其属性,设置“以管理员身份运行”标志。

现在,如果您想以管理员身份运行脚本,请使用以下命令之一:

csadmin myscript.vbs
wsadmin myscript.vbs

(如果您想以默认方式运行,请使用wscriptcscript

笔记:如果您想以管理员身份运行所有脚本(每次都会出现 UAC 窗口),那么只需将“以管理员身份运行”标志设置为开启cscript.exe即可wscript.exe

希望能帮助到你。

相关内容