如何允许非管理员用户运行需要更高权限的 VBS 脚本?

如何允许非管理员用户运行需要更高权限的 VBS 脚本?

我有一个需要提供给最终用户的 vbs 脚本,但它需要的权限比他们在锁定的工作站上拥有的权限更多 - 具体来说,更新某些 HKLM 注册表值以及停止/启动 Windows 服务。有没有办法可以为他们提供运行脚本的能力,以便它能够正常工作?例如,以不同的用户帐户身份运行,而不要求用户使用不同的帐户登录?

该脚本不是登录过程的一部分。它允许正在测试软件产品的用户将他们的机器指向不同的“环境”,以便他们可以在测试环境和实时环境之间切换。

更新:如果唯一的解决方案意味着在 VBS 之外做一些事情,那么只要有一些选择就好了。

答案1

如果不加密密码并将其包含在 VBS 脚本中,则不行。

还有其他选项,如远程脚本,但这些设置可能会关闭,具体取决于您是否属于域的一部分。

该脚本是登录过程的一部分吗?

编辑:

该脚本不是登录过程的一部分。它允许正在测试软件产品的用户将他们的机器指向不同的“环境”,以便他们可以在测试环境和实时环境之间切换。

更新:如果唯一的解决方案意味着在 VBS 之外做一些事情,那么只要有一些选择就好了。

无需更多详细信息,到目前为止,我能推荐的最佳解决方案是创建一个单独的用户帐户并修改注册表项的 ACL,以明确允许该帐户修改这些项。然后在该帐户下运行脚本。试试看。

答案2

一种方法是使用国家安全监测中心或者类似的工具来将脚本作为系统服务运行。然后,您可以配置服务的安全性以允许用户启动它,也许还可以编写一个脚本来为他们​​执行此操作。

答案3

有点以编程为中心的答案,但我会编写一个小型的.NET Windows 服务和客户端应用程序,可以通过WCF/远程处理。该服务只会监听来自客户端的请求,如果客户端获得授权,则运行脚本。该服务将以具有正确权限的帐户运行。

编辑

类似地,您可以将脚本设置为计划任务,并设置为以具有所需权限的用户身份运行。然后,授予用户执行计划任务的权限。为此,您需要进入%SYSTEMROOT%\System32\Tasks并设置相应任务文件的 NTFS 权限。

答案4

授予在本地计算机上运行脚本的权限

  1. 在 Internet Explorer 中,打开 %windir%\system32(例如,C:\WINDOWS\System32)。
  2. 在详细信息窗格中,右键单击 cmd.exe,然后单击“属性”。
  3. 在 cmd.exe 属性对话框中,在安全选项卡上,单击添加。
  4. 在“选择用户、计算机或组”对话框中的“输入要选择的对象名称”框中,
  5. 键入您要授予权限的用户的名称,然后单击“确定”。

在 cmd.exe 属性对话框的安全选项卡上的管理员权限框中,选中读取和执行的允许复选框,然后单击确定。

相关内容