我正在通过jenkins运行powershell脚本。它有一个cmdlet需要提升权限。所以我正在编写这些cmdlet,如下所示
start-process powershell.exe -verb runas -argumentlist "net localgroups administrators domain\user /add"
但这会提示UAC,我必须手动点击是。然后它进一步发展。 我想在不提供UAC提示的情况下提升cmdlet并继续继续....
用于运行脚本的帐户具有该计算机的管理员权限。
答案 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 好多;因为他们可以在 UAC 对话框中输入他们的凭据:
你可能会说:
<块引用>我不在乎这些。我只是不想要 UAC 提示。我希望它像在 Windows XP 中一样工作
如果您不想要 UAC 提示,并且希望它的行为与 Windows XP 中的一样:那么您绝对可以这样做。您可以完全自由地关闭 UAC。
这是您的偏好,您可以这样做。
许多其他用户不想以管理员身份进行日常工作。但由于您只是在计算机上运行脚本:没问题。