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

使用PowerShell复制Azure存储表时遇ExecuteQuerySegmentedAsync报错

错误原因分析

错误InvalidOperation: Method invocation failed because [System.String] does not contain a method named 'ExecuteQuerySegmentedAsync'的核心问题是:Get-AzTableRowAll和Add-AzTableRow需要接收CloudTable对象作为-Table参数,但脚本里传递的是字符串类型的表名($sourcetablename、$desttablename),而非之前通过Get-CloudTable函数获取的$sourceTable和$destinationTable对象。

修复后的完整脚本
#Set Variables to define source and destination values
$sourcestorageaccountname = "stlpttoragetst"
$sourceresourcegroupname = "RG_SUPPLY__ADF_TEST_AUE"
$destinationstorageaccountname = "stlpestorage"
$destinationresourcegroupname = "RG_SUPPLY_DEV_AUE"
$sourcetablename = "DataConfig" 
$desttablename =  "TestTable"

#Get storage account keys
$sourcestorageaccount = Get-AzStorageAccount -ResourceGroupName $sourceresourcegroupname -Name $sourcestorageaccountname
$destinationstorageaccount = Get-AzStorageAccount -ResourceGroupName $destinationresourcegroupname -Name $destinationstorageaccountname
 
$sourcekey = "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$g=="
$destinationkey = "$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"  

#Function to create CloudTable reference
function Get-CloudTable {
    param (
        [string]$accountName,
        [string]$accountKey,
        [string]$tableName
    )
    $storageContext = New-AzStorageContext -StorageAccountName $accountName -StorageAccountKey $accountKey

    #Get Cloud Table Reference
    $table = Get-AzStorageTable -Name $tableName -Context $storageContext

    return $table
}

#Get Source table and Destination table reference 
$sourceTable = Get-CloudTable -accountName $sourcestorageaccountname -accountKey $sourcekey -tableName $sourceTablename
$destinationTable = Get-CloudTable -accountName $destinationstorageaccountname -accountKey $destinationkey -tableName $desttablename

#Copy Entity from Source Table to Destination table 
$entities = Get-AzTableRowAll -Table $sourceTable

foreach ($entity in $entities){
    #Insert or replace entity in destination table
    $insertOperation = Add-AzTableRow -Table $destinationTable -PartitionKey $entity.PartitionKey -RowKey $entity.RowKey -Property $entity.Properties
}
Write-Output "Table Copied Completed"
关键修复点
  • 将Get-AzTableRowAll -table $sourcetablename改为Get-AzTableRowAll -Table $sourceTable,传递正确的CloudTable对象
  • 将Add-AzTableRow -Table $desttablename改为Add-AzTableRow -Table $destinationTable,同样传递CloudTable对象而非字符串表名
  • 统一参数名大小写(-partitionKey→-PartitionKey、-property→-Property),符合PowerShell参数规范

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 03:46:01