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

如何通过SCCM/ConfigMgr脚本将文件复制到Program Files (x86)

问题解决:复制文件到Program Files (x86)目录失败

问题根源

复制失败并非路径空格导致,而是脚本存在语法错误和文件名不一致问题:

  1. 路径错误添加单引号:C:\Program Files'(x86')\... 会让PowerShell识别无效路径
  2. Remove-Item命令的路径未闭合引号,且文件名拼写与复制目标不一致(AdobeUpdater.Override vs AdobeUpdater.Overrides)
  3. 即使SCCM以系统上下文运行,路径语法错误会直接导致操作失败

修正后的脚本

$URL = "Internal FTP Server"
# 修正路径的单引号错误
$TestPath86 = Test-Path -Path "C:\Program Files (x86)\Common Files\Adobe\UpdateResources"
$TestPath64 = Test-Path -Path "C:\ProgramData\Adobe\AAMUpdater\1.0"
$Dest = "C:\Program Files (x86)\Common Files\Adobe\UpdateResources\"

# 仅修改当前进程的执行策略,不影响全局设置
Set-ExecutionPolicy Bypass -Scope Process -Force
Invoke-WebRequest -Uri $URL -OutFile "C:\IT-Extra\Override.zip"
Start-Sleep -Seconds 5
# 添加Force参数覆盖已有解压文件
Expand-Archive "C:\IT-Extra\Override.zip" -DestinationPath "C:\IT-Extra\" -Force
Start-Sleep -Seconds 5
Remove-Item "C:\IT-Extra\Override.zip" -Force

if ($TestPath86) {
    # 修正文件名拼写和引号闭合,添加ErrorAction避免文件不存在时中断脚本
    Remove-Item "$Dest\AdobeUpdater.Overrides" -Force -ErrorAction SilentlyContinue
    Copy-Item -Path "C:\IT-Extra\AdobeUpdater.Overrides" -Destination $Dest -Force
}

if ($TestPath64) {
    Remove-Item "C:\ProgramData\Adobe\AAMUpdater\1.0\AdobeUpdater.Overrides" -Force -ErrorAction SilentlyContinue
    Copy-Item -Path "C:\IT-Extra\AdobeUpdater.Overrides" -Destination "C:\ProgramData\Adobe\AAMUpdater\1.0" -Force
}

额外优化说明

  • 用-ErrorAction SilentlyContinue避免因目标文件不存在导致脚本中断
  • 给Set-ExecutionPolicy加-Scope Process,仅临时生效当前脚本的执行策略
  • 直接用if ($TestPath86)替代if ($TestPath86 -eq $true),符合PowerShell布尔值判断规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 19:10:59