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

PowerShell脚本复制文件共享文件夹至多台电脑失败求助

问题排查与修复

两段脚本的核心问题如下:

  • 均定义了函数但从未调用,代码根本没执行
  • 第二段脚本在ForEach-Object里错误使用$computers变量,应该用$_指代当前循环的单台计算机
  • 多余的New-PSDrive完全没用,反而可能引入权限问题
  • 第一段未加-Recurse参数,无法复制子文件夹;*.*会漏掉无扩展名的文件

修正后的可用脚本

# 读取目标计算机列表
$computers = Get-Content "\\tswkbro\shared\brookscomputers.txt"
# 要复制的源文件夹路径(直接指向文件夹,无需*.*)
$sourceFolder = "\\tswkbro\shared\abcbrooks-3.0.0.0"

# 遍历每台计算机执行复制
foreach ($computer in $computers) {
    # 先验证目标计算机的C$共享是否可达
    if (Test-Path "\\$computer\C$") {
        Copy-Item -Path $sourceFolder -Destination "\\$computer\C$" -Recurse -Force -Verbose
        Write-Host "已完成对 $computer 的复制"
    }
    else {
        Write-Warning "无法访问 $computer 的C$共享,请检查网络或权限"
    }
}

关键修正说明

  • 移除无用的New-PSDrive,直接用UNC路径操作更简洁
  • 增加Test-Path提前验证目标共享可达性,避免无效尝试
  • 源路径直接指向文件夹,配合-Recurse完整复制所有内容(含子文件夹、无扩展名文件)
  • 移除ErrorAction SilentlyContinue,保留-Verbose便于排查执行问题
  • 直接执行逻辑,不再使用未调用的函数

额外注意事项

  • 运行脚本的账号需同时拥有源共享的读取权限,以及目标计算机C$共享的写入权限
  • 确保目标计算机开启文件共享服务且网络连通
  • 若计算机名列表存在空行或无效名称,Test-Path会给出警告,方便排查

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 20:55:23