在需要验证时使用powershell以静默方式安装软件

时间:2018-01-14 15:57:09

标签: powershell nsis

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

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\

但是,我们的管理员要求您从下拉列表中选择原因,并在每次需要管理员访问权限时输入密码。

有解决方法吗?

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

2 个答案:

答案 0 :(得分:1)

只需使用管理权限运行PowerShell:

  1. 右键单击PowerShell
  2. 选择'以管理员身份运行'
  3. 或者:

    1. 使用' Shift + Ctrl +点击'打开PowerShell。
    2. 两个命令都执行相同操作并使用提升的权限打开程序。这可以防止UAC弹出,因为PowerShell已经以提升的权限运行。

答案 1 :(得分:1)

至于......

"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工具监控安装事件,以防止未经授权的安装???

Soooooo .... 您是要求论坛成员帮助您使用代码来规避/违反您组织的安全/风险管理政策??? 在大多数组织中,违反安全/风险政策的是RPE(恢复生成事件)。你不应该先与你的组织决策者谈谈吗?

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

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

WASP是用于Windows自动化任务的PowerShell管理单元,例如选择窗口和控件以及发送鼠标和键盘事件。我们有自动化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。