【问题标题】:Start a service from a webapp with administrator privileges passing by a batch file通过批处理文件从具有管理员权限的 webapp 启动服务
【发布时间】:2016-05-16 17:28:38
【问题描述】:

我正在开发一个在 vm 上运行的监控应用程序,我希望我的同事能够在不连接 vm 的情况下使用它。它工作正常,但我有一个问题。

我的目标之一是使用批处理文件或 cmd 文件(在我后面使用 Class Runtime)来启动/停止服务。问题是我需要管理员权限才能做到这一点。我发现的所有方法(如 Runas 或一些批处理文件)仅在用户在 vm 上并输入密码或单击“你想以管理员身份运行此应用程序”弹出窗口时才有效。我不想使用任务调度程序始终以管理员身份启动 cmd。我已经知道您可以将软件用作“Sanur”,但我不想这样做。

让它工作的唯一方法是以管理员身份启动应用程序,它工作正常(我正在使用“net start/stop”命令)。但我想让每个人都启动这个应用程序(以防我不在这里)。 在文件中写入登录名/密码是没有问题的。

有办法吗?

虚拟机在 Windows 7 上运行。

提前谢谢你。

【问题讨论】:

    标签: windows batch-file cmd admin


    【解决方案1】:

    您无需成为管理员即可启动和停止服务,您只需要权限即可。使用 Windows 7 Professional,您可以通过内置的组策略编辑器执行此操作。

    在 Windows 7 Home 中,没有策略编辑器。

    我使用名为SetACL 的工具来执行此操作,例如:

    setacl -on "service-name" -ot srv -actn ace -ace "n:betrand;p:start_stop"
    

    其中"service-name" 是服务的名称,betrand 是您希望允许启动和停止服务的用户。

    网站上提供了完整的选项列表:

    另一个选项是直接来自 Microsoft 的 SubInACL 工具。

    【讨论】:

    • 感谢您的回答,但正如您所说,我无法使用内置组策略编辑器。最后,我将不得不使用外部工具来实现我的目标,不是吗?我的问题应该更具体一些,但我无权导入工具或软件(这就是我尝试只使用批处理文件的原因)。非常感谢您的回答,谢谢。
    • @Y.Bertrand: setacl.exe 不需要安装。您只需下载、运行并分配权限即可。
    • @a_horse_with_no_name 正如我之前所说,我没有使用任何工具的权利。我在一个封闭的网络上工作,我不能放任何新工具。这是我们的一个非常严格的条件。这就是为什么我只想使用我能写的脚本。不过谢谢你的提示。
    • 如果您不想让每个人都成为管理员,那么授予必要的权限是唯一的选择。你需要找到某种方式来授予他们。通过组策略或使用其他工具。我没有看到任何其他选择。如果这很重要,那么您需要询问负责管理员的人员是否授予这些权限或允许为此使用工具(如果非 Microsoft 工具完全没有问题,则提供 SubInACL)
    • @a_horse_with_no_name@ 好的,如果这是唯一的方法,我就这样吧,或者问问我的上级。我将结束我的问题,谢谢 a_horse_with_no_name。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 2016-07-24
    • 1970-01-01
    相关资源
    最近更新 更多