代码之家  ›  专栏  ›  技术社区  ›  Spider

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

  •  1
  • Spider  · 技术社区  · 7 年前

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

    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 回复  |  直到 7 年前
        1
  •  2
  •   postanote    7 年前

    至于这个。。。

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

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

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

    看看像WASP这样的工具,它有点过时了,但可能对你有用。

    WASP是一个PowerShell管理单元,用于选择窗口和控件以及发送鼠标和键盘事件等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这样的工具可以帮助您在这里实现自动化。

        2
  •  1
  •   Leo    7 年前

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

    1. 右键单击PowerShell
    2. 选择“以管理员身份运行”

    或:

    1. 使用“Shift+Ctrl+单击”打开PowerShell。

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