You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows容器Docker中执行Expand-Archive解压文件失败问题排查

Dockerfile中pwsh执行Expand-Archive返回错误码255,但powershell -Command可成功的排查方案

核心排查方向

  • 执行策略差异:分别在pwsh和powershell中执行 Get-ExecutionPolicy -List,对比两者的层级策略(尤其是Process、CurrentUser)。如果pwsh的执行策略为Restricted或更严格,会直接阻止命令执行,返回错误码255。可临时用 pwsh -ExecutionPolicy Bypass -Command "Expand-Archive ..." 测试验证。
  • 配置文件干扰:pwsh启动时会加载$PROFILE配置文件,如果该文件存在错误脚本,会导致后续命令执行异常。尝试添加-NoProfile参数跳过配置:pwsh -NoProfile -Command "Expand-Archive ...",如果能成功,说明是配置文件的问题。
  • 环境变量与依赖差异:pwsh(PowerShell Core)和powershell(Windows PowerShell)的环境变量、模块加载逻辑不同。分别执行 Get-ChildItem Env: 和 Get-Module -ListAvailable 对比,重点看PATH、PSModulePath是否存在差异,是否缺少解压所需的依赖组件。
  • 文件权限问题:下载的zip文件可能在pwsh环境下没有读取/写入权限。解压前执行 Get-Acl .\yourfile.zip 查看权限,或者添加-Force参数强制解压:Expand-Archive -Path .\file.zip -DestinationPath .\target -Force

临时解决办法

如果暂时无法定位根因,可直接在Dockerfile中替换为powershell -Command执行解压步骤,或者拆分命令并增加错误捕获:

# 下载文件
RUN pwsh -Command "Invoke-WebRequest -Uri '更新后的CDN地址' -OutFile .\package.zip"
# 用Windows PowerShell执行解压并清理
RUN powershell -Command "Expand-Archive -Path .\package.zip -DestinationPath .\app; Remove-Item .\package.zip -Force"

内容的提问来源于stack exchange,提问作者Sukhy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 03:56:02