如何通过PowerShell远程传递卸载密码卸载Inno Setup加密应用
解决Inno Setup带密码应用的静默卸载问题
核心参数修正
Inno Setup的卸载密码传递有固定格式,你之前的命令错误在于参数间多了空格,正确写法是把密码直接附加在/UNINSTALLPASSWORD参数后,无空格分隔:
Start-Process -Wait -FilePath $uninstall32 "/UNINSTALLPASSWORD=AR" /SILENT
或者将参数统一放入-ArgumentList更稳妥:
Start-Process -Wait -FilePath $uninstall32 -ArgumentList "/UNINSTALLPASSWORD=AR", "/SILENT"
注意:
/SILENT是Inno Setup的静默卸载参数,必须和密码参数配合使用,才能确保无弹窗执行。
远程卸载适配
如果要远程执行,可结合PowerShell远程会话(Invoke-Command)封装命令调用:
Invoke-Command -ComputerName "目标主机名" -ScriptBlock { $uninstallPath = "C:\实际路径\Uninstall.exe" # 替换为目标卸载程序的完整路径 Start-Process -Wait -FilePath $uninstallPath -ArgumentList "/UNINSTALLPASSWORD=AR", "/SILENT" }
前提:已配置PowerShell远程信任关系,目标主机开启WinRM服务,执行用户拥有足够权限。
验证要点
- 确认卸载程序由Inno Setup生成:可通过查看程序属性或检测签名标识验证。
- 密码需完全匹配:Inno Setup对卸载密码区分大小写,需确保输入的密码和安装时设置的完全一致。
- 先本地测试:在目标机器本地执行修正后的命令,确认静默卸载成功后,再扩展到远程场景。
内容的提问来源于stack exchange,提问作者antony paracka paracka
相关产品推荐
相关产品推荐

