【问题标题】:Example of prompting for admin access in Windows CMD file在 Windows CMD 文件中提示管理员访问权限的示例
【发布时间】:2012-02-17 21:21:54
【问题描述】:

我正在编写一个命令文件 (.cmd) 来将用户添加到本地组。如果调用失败,我希望 CMD 文件提示管理员访问。

我想应该是这样的:

@echo off
net localgroup administrators domain\user /add

rem The Net command doesn't prompt for privilege escalation, it just fails.
if "%errorlevel%" neq "0" RequireAdministrator "cmd.exe /c net localgroup administrators domain\user /add"

if "%errorlevel%" neq "0" echo Could not add user to administrators group

这有意义吗?

【问题讨论】:

  • 为什么不直接运行命令“net localgroup...”,看看是否成功,如果不成功则提示?
  • 问题是如果您没有访问权限,net.exe 不会提示您。具体来说,我需要一种提升特权的方法。为了清楚起见,我将进行编辑。

标签: windows batch-file cmd uac


【解决方案1】:

微软发布了一个众所周知的脚本elevate。它以 Elevation PowerToys 的形式出现。你可以从here下载。

您需要的两个文件是elevate.vbselevate.cmd。将它们放在与 .cmd 文件相同的目录中,或者可能位于系统路径的某个位置。那么你的 .cmd 文件应该是这样的:

elevate cmd.exe /c net localgroup administrators domain\user /add

【讨论】:

    猜你喜欢
    • 2012-03-25
    • 1970-01-01
    • 2016-02-04
    • 2016-06-05
    • 1970-01-01
    • 2013-06-19
    • 2021-01-29
    • 2021-07-08
    • 2021-02-28
    相关资源
    最近更新 更多