【问题标题】:How to get needed rights in batch script programmatically?如何以编程方式在批处理脚本中获得所需的权限?
【发布时间】:2014-08-06 15:34:29
【问题描述】:

执行命令:

icacls "C:\Program Files\MyDir" /grant myusername:(OI)(CI)(F)

我没有足够的权利。我可以让 Windows 要求我通过管理员帐户获得权限,如下图所示?如何 ?该脚本将由 WinRar 自动执行,因此在 Windows 提示输入密码等之前无需手动操作。所以我想实现以下行为:

  1. 运行部分脚本
  2. 需要权限 -> 提示输入密码等。
    1. 获得权利,继续执行
    2. 没有权限,中断操作

编辑: I found this. 它解决了我的问题。

像这样:

或者这个

【问题讨论】:

标签: windows batch-file uac


【解决方案1】:

将其放入第 2 步:

NET FILE 1>NUL 2>NUL
if not '%errorlevel%' == '0' powershell "saps -filepath %0 -verb runas" >nul 2>&1 &exit/b
cd /d "%~dp0"

【讨论】:

  • 这朝着正确的方向发展,但我无法让它运行。请参阅我的问题中的编辑。有一个答案可以解决它。不知道什么更好,但另一个对我有用。
  • 为什么不呢?会发生什么?
  • 没什么。也许您对其进行了编辑,以便打印出用户名之类的内容。它不会要求我获得管理员许可或任何东西。我对脚本不是很熟悉。请不要怪我。
  • 如果脚本在路径中有空格,则将 %0 更改为 %~s0(可能启用了短名称)。或者你没有powershell?
【解决方案2】:

使用 RUN AS 以管理员身份启动 CMD 窗口: Windows 键 - 在搜索框中,输入 CMD,按 Ctrl+Shift+Enter(不仅仅是 Enter)以管理员身份运行。系统会提示您输入管理员凭据。

【讨论】:

    【解决方案3】:

    另一种解决方案是创建批处理脚本的快捷方式并勾选“以管理员身份运行”复选框(在“高级”下)。

    【讨论】:

      猜你喜欢
      • 2011-01-29
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 2013-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多