如何在运行PowerShell脚本时避免UAC提示

时间:2016-07-29 12:17:53

标签: powershell uac powershell-v4.0

我正在通过jenkins运行powershell脚本。它有一个cmdlet需要提升权限。所以我正在编写这些cmdlet,如下所示

start-process powershell.exe -verb runas -argumentlist "net localgroups administrators domain\user /add" 

但这会提示UAC,我必须手动点击是。然后它进一步发展。 我想在不提供UAC提示的情况下提升cmdlet并继续继续....

用于运行脚本的帐户具有该计算机的管理员权限。

2 个答案:

答案 0 :(得分:0)

除了禁用UAC(这显然应该是最后的手段)之外,您可以通过创建“预定的”来实现您的目标。设置为运行升级并从Jenkins触发该任务的任务 这里的困难可能是关于如何将信息传递给任务并从任务中检索信息 - 也许你可以通过一些众所周知的路径来实现这一点。
请参阅here了解如何设置此类任务,here了解如何触发此任务。

由于我现在没有任何Jenkins安装,我无法测试它 - sry。

答案 1 :(得分:-1)

问题在于开关:

-verb runas

这会指示 Windows 您需要以管理员身份运行代码。

删除它,Windows 将停止提示用户提供管理员权限。


您的下一个问题可能是:

<块引用>

但我希望标准用户能够执行需要管理权限的操作。

抱歉,这在安全操作系统上是不允许的。

  • 如果我是标准用户
  • 我不能只是决定成为管理员

实际上我必须被授予这些权利。

8 岁的孩子或公司桌面用户不能仅仅成为管理员,因为他们写道:

start-process explorer.exe -verb runas

他们需要我或 IT 人员走过 6 座大楼,输入我的管理员凭据 - 因为我确实拥有管理员权限。

想象在 UAC 之前的生活

每一个抱怨UAC、讨厌UAC的开发者都想回到UAC之前。让我们想象一下。

  • 现在是 2002 年,您运行的是 Windows XP SP3
  • 没有 UAC,因此您始终是标准用户

并且您想以管理员身份运行一些代码。

你不能那样做;您是标准用户。

唯一的解决办法是:

  • 快速切换用户
  • 并让管理员登录机器
  • 让他们运行你的脚本
  • 然后他们退出
  • 您可以快速切换回您自己的帐户

UAC 好多;因为他们可以在 UAC 对话框中输入他们的凭据:

enter image description here

但我只是不想要 UAC 提示

你可能会说:

<块引用>

我不在乎这些。我只是不想要 UAC 提示。我希望它像在 Windows XP 中一样工作

如果您不想要 UAC 提示,并且希望它的行为与 Windows XP 中的一样:那么您绝对可以这样做。您可以完全自由地关闭 UAC。

  • 标准用户永远是标准用户,没有办法提升
  • 管理员将始终是管理员用户,无需提升

这是您的偏好,您可以这样做。

许多其他用户不想以管理员身份进行日常工作。但由于您只是在计算机上运行脚本:没问题。