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

PowerShell脚本Copy-Item报错:Buffer cannot be null问题排查求助

PowerShell脚本Copy-Item报错“Buffer cannot be null”排查方案

报错原因分析

出现“Buffer cannot be null”参数错误,核心原因多为路径解析异常或目标目录未提前创建,结合脚本细节具体指向:

  • 路径分隔符混用:脚本中用$des/$server混合了Windows标准的\和Linux风格的/,导致PowerShell解析路径时出错
  • 目标目录不存在:$final对应的目录未提前创建,Copy-Item的-Recurse参数在路径解析错误时无法自动生成目录
  • 远程会话有效性未校验:未确认New-PSSession是否成功建立,无效会话会导致后续Copy-Item参数异常

修复步骤

1. 用标准方法构建路径

替换手动拼接路径的方式,用Join-Path自动处理分隔符,避免混用问题:

$final = Join-Path -Path $des -ChildPath $server

2. 提前创建目标目录

在执行Copy-Item前,先检查并创建目标目录:

if (-not (Test-Path -Path $final)) {
    New-Item -Path $final -ItemType Directory -Force | Out-Null
}

3. 校验远程会话状态

创建会话后先确认会话是否正常开启,避免无效会话导致报错:

if ($session -and $session.State -eq 'Opened') {
    # 执行文件拷贝逻辑
} else {
    Write-Host "无法建立到 $server 的远程会话"
    continue
}

4. 优化Copy-Item参数顺序(可选)

部分PowerShell版本对参数顺序敏感,将-FromSession前置,确保参数识别正确:

Copy-Item -FromSession $session -Path $source -Destination $final -Recurse -Force -Verbose

修复后的完整脚本

$listservers = Get-Content "C:\Users\bob\Documents\PowerShell\serverlist.txt"

$cred = Get-Credential
$source = "C:\PerfLogs\Admin\*"
$des = "C:\Users\bob\Documents\PowerShell\Logs\"

foreach($server in $listservers)
{
    if(Test-Connection -ComputerName $server -Quiet)
    {
        $session = New-PSSession -ComputerName $server -Credential $cred
        
        if ($session -and $session.State -eq 'Opened') {
            $final = Join-Path -Path $des -ChildPath $server
            
            if (-not (Test-Path -Path $final)) {
                New-Item -Path $final -ItemType Directory -Force | Out-Null
            }
            
            Copy-Item -FromSession $session -Path $source -Destination $final -Recurse -Force -Verbose
            Remove-PSSession -Session $session # 及时关闭会话释放资源
        } else {
            Write-Host "无法建立到 $server 的远程会话"
        }
    }
    else{
        Write-Host "无法连接到 $server"
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:39:52