处理远程 powershell msiexec 安装中的隐藏弹出窗口
Handle hidden popup in remote powershell msiexec installation
我需要通过 powershell 远程执行应用程序升级。卸载工作正常,但因为对于安装,有一个弹出窗口要求我在继续之前单击 "ok"。虽然我可以在本地安装实例中关闭它,但对于远程安装我不能这样做,因为该弹出窗口是隐藏的(未显示)。因此我的安装失败了。这是我的脚本:
Enter-PSSession "computername" -Auth CredSSP -cred username
(Start-Process -FilePath "msiexec.exe" -ArgumentList "/i D:\path\installer.msi /l*vx D:\path\installation.log /q" -Wait -Passthru).ExitCode
由于隐藏的弹出窗口,上述脚本的执行挂起。关于如何抑制隐藏的弹出窗口或发送 'enter' 指令(最好不使用 psexec)的任何想法?
我解决了我的问题。也许这是一个极端情况,该解决方案可能只适用于我的情况,但我会分享它以防其他人希望尝试(/LM/W3SVC/2
和 <appPool name>
以及其他路径需要相应地更改为你的设置):
旧脚本
msiexec /i D:\path\installer.msi TARGETAPPPOOL=<appPool name> TARGETSITE=/LM/W3SVC/2 /l*vx D:\path\installation.log /quiet
即使使用 /quiet 或 /qn,弹出窗口仍然存在。如果远程执行隐藏它,情况会变得更糟。但是我偶然设置了 TARGETDIR
并且弹出窗口被自动确认并处理了:
新脚本
msiexec /i D:\path\installer.msi TARGETAPPPOOL=<appPool name> TARGETDIR=D:\path TARGETSITE=/LM/W3SVC/2 /l*vx D:\path\installation.log /quiet
新的 属性 属性似乎与我的问题无关,但还是解决了它。
我需要通过 powershell 远程执行应用程序升级。卸载工作正常,但因为对于安装,有一个弹出窗口要求我在继续之前单击 "ok"。虽然我可以在本地安装实例中关闭它,但对于远程安装我不能这样做,因为该弹出窗口是隐藏的(未显示)。因此我的安装失败了。这是我的脚本:
Enter-PSSession "computername" -Auth CredSSP -cred username
(Start-Process -FilePath "msiexec.exe" -ArgumentList "/i D:\path\installer.msi /l*vx D:\path\installation.log /q" -Wait -Passthru).ExitCode
由于隐藏的弹出窗口,上述脚本的执行挂起。关于如何抑制隐藏的弹出窗口或发送 'enter' 指令(最好不使用 psexec)的任何想法?
我解决了我的问题。也许这是一个极端情况,该解决方案可能只适用于我的情况,但我会分享它以防其他人希望尝试(/LM/W3SVC/2
和 <appPool name>
以及其他路径需要相应地更改为你的设置):
旧脚本
msiexec /i D:\path\installer.msi TARGETAPPPOOL=<appPool name> TARGETSITE=/LM/W3SVC/2 /l*vx D:\path\installation.log /quiet
即使使用 /quiet 或 /qn,弹出窗口仍然存在。如果远程执行隐藏它,情况会变得更糟。但是我偶然设置了 TARGETDIR
并且弹出窗口被自动确认并处理了:
新脚本
msiexec /i D:\path\installer.msi TARGETAPPPOOL=<appPool name> TARGETDIR=D:\path TARGETSITE=/LM/W3SVC/2 /l*vx D:\path\installation.log /quiet
新的 属性 属性似乎与我的问题无关,但还是解决了它。