PowerShell中Start-Process调用msiexec执行失败求助
7-Zip MSI安装脚本无响应问题排查与解决
我运行PowerShell脚本时毫无反应,软件并未安装,尝试排错也遇到问题,恳请提供帮助或指导。
原安装脚本
# 软件路径 $SevenZip = $PSScriptRoot + "\MSI\7z2201-x64.msi" Start-Process "msiexec.exe" -ArgumentList " /i $SevenZip /quiet /qn /norestart ADDLOCAL=ALL REBOOT=ReallySuppress ALLUSERS=1" -Wait -NoNewWindow
排错尝试
我修改脚本添加日志输出:
Start-Process "msiexec.exe" -ArgumentList " /i $SevenZip /quiet /L*v 'C:\Info.log'" -Wait -NoNewWindow
但未找到生成的日志文件C:\Info.log,同时弹出如下错误对话框:
错误对话框翻译:
此安装包无法打开。请确认该包存在,且你有权访问它,或联系应用程序供应商验证这是有效的Windows安装程序包。
解决方案建议
- 校验MSI文件路径
确认$PSScriptRoot\MSI\7z2201-x64.msi真实存在,路径无空格或特殊字符。可在脚本开头添加校验逻辑:if (-not (Test-Path $SevenZip)) { Write-Error "MSI文件不存在:$SevenZip" exit 1 } - 修正参数格式
msiexec参数中,路径含空格需用引号包裹,且日志路径的引号嵌套要符合PowerShell规则,修改后排错脚本:Start-Process msiexec.exe -ArgumentList "/i `"$SevenZip`" /quiet /L*v `"C:\Info.log`"" -Wait -NoNewWindow - 以管理员权限运行
右键PowerShell选择「以管理员身份运行」,MSI安装通常需要管理员权限,静默安装无响应大概率是权限不足导致。 - 验证MSI文件完整性
直接双击7z2201-x64.msi,若手动安装也报错,说明文件损坏,重新下载官方7-Zip MSI安装包。
内容的提问来源于stack exchange,提问作者Sam
相关产品推荐
相关产品推荐

