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

局域网内通过PowerShell向多台电脑复制文件的脚本故障排查求助

脚本问题排查与修正

原脚本的核心问题

  • 变量未解析+路径格式错误:单引号包裹的路径'\$computer\c$\temp\'里,$computer不会被替换成实际电脑名,且UNC网络路径必须以\\开头,否则系统无法识别为共享路径。
  • 作用域错误:$computers是本地定义的变量,远程执行的脚本块默认无法直接访问,需用$using:前缀引用,但这里根本不需要在远程脚本块内重复循环目标电脑列表。
  • 逻辑倒置:你的需求是从一台电脑复制文件到多台,但原脚本是让每台远程电脑(pc1-pc4)将自身文件复制到pc5,完全与需求方向相反;且Invoke-Command本身已会遍历每台目标电脑,无需在脚本块内再嵌套循环。

修正后的脚本(按需求:从单台电脑复制到多台)

如果你的需求是把pc5上的C:\temp目录内容,复制到pc1、pc2、pc3、pc4的C:\temp目录,可使用以下脚本:

$targetComputers = 'pc1','pc2','pc3','pc4'
Invoke-Command -ComputerName $targetComputers -ScriptBlock {
    # 远程电脑执行:从pc5的共享目录拉取文件到本地
    Copy-Item -Path '\\pc5\c$\temp\' -Destination 'C:\temp\' -Recurse -Force
}

如果是把本地电脑的文件复制到多台远程电脑,则修改为:

$targetComputers = 'pc1','pc2','pc3','pc4'
$localSourcePath = 'C:\temp\'
Invoke-Command -ComputerName $targetComputers -ScriptBlock {
    Copy-Item -Path $using:localSourcePath -Destination 'C:\temp\' -Recurse -Force
}

额外注意事项

  • 执行脚本的账号需在所有目标电脑上拥有管理员权限(访问C$默认共享需管理员权限)。
  • 所有电脑需开启SMB服务,且防火墙允许文件共享相关通信。
  • 若需要覆盖目标目录现有文件,必须添加-Force参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 14:01:12