需要验证时使用powershell静默安装软件

Using powershell to silently install software when verification is required

这是一个简单的脚本,我只需要在几台机器上安装几个软件即可。

C:\Users\user\Downloads\executable.exe /S /D=C:\Program Files\Executable\
C:\Users\user\Downloads\executable1.exe /S /D=C:\Program Files\Executable1\
C:\Users\user\Downloads\executable2.exe /S /D=C:\Program Files\Executable2\

但是,我们的管理员要求您 select 每次需要管理员权限才能执行某项操作时,从下拉列表中选择原因并输入您的密码。

有解决办法吗?

编辑:就像现在一样,它看起来正在安装,但它失败了。如果我关闭静音,弹出窗口会出现,在输入正确的值后,它将继续安装。

只有 运行 个具有管理权限的 PowerShell:

  1. 右键单击 PowerShell
  2. Select 'Run as administrator'

或:

  1. 使用 'Shift + Ctrl + Click' 打开 PowerShell。

这两个命令的作用相同,并以提升的权限打开程序。这可以防止 UAC 弹出,因为 PowerShell 已经 运行 提升了权限。

至于这个...

"our admins require you to select a reason from a dropdown and enter your password every time you need admin access to do something.

Is there a workaround for this?"

所以,他们正在使用本机 Windows 策略或 3rdP 工具监控安装事件,以防止未经授权的安装???

太棒了.... 您要求论坛成员帮助您编写 circumvent/violates 您组织的安全/风险管理政策的代码??? 在大多数组织中,违反安全/风险政策是一种 RPE(简历生成事件)。您不应该先与您的组织政策制定者交谈吗?

无论如何,如果您有权执行此安装工作,则该方法与尝试将数据推送到表单没有什么不同。您捕获表单 Window,枚举输入框以便能够知道它们是什么并采取所需的操作。开箱即用的 PoSH 确实不是为这类事情而设计的。您需要一个能够以编程方式处理 GUI 的工具,并且可能需要一个没有已知接口来进行自动化处理的 GUI。

看看像 WASP 这样的工具,它有点过时,但可能适合你。

WASP 是一个 PowerShell 管理单元,用于 Windows 自动化任务,例如选择 windows 和控制以及发送鼠标和键盘事件。我们有自动化 cmdlet,例如 Select-Window、Select-Control、Send-Keys、Send-Click、Get-WindowPosition、Set-WindowPosition , Set-WindowActive, Remove-Window ...等

http://wasp.codeplex.com

或 AutoIT

https://www.autoitscript.com/site/autoit

顺便说一句,如果您试图在远程主机上的用户上下文中执行此操作,PoSH 将不允许您执行此操作,它受到 Windows 安全主体边界的限制。像 PSExec 这样的工具可以在这方面提供帮助 AutoIt。