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

PowerShell脚本中$database.DatabaseName变量未正确解析问题

问题原因与解决方法

核心原因

你看到的Microsoft.Azure.Commands.Sql.Database.Model.AzureSqlDatabaseModel.DatabaseName是PowerShell无法直接解析属性访问时返回的类型限定属性名,通常出现在以下场景:

  • 获取的$database对象集合中,部分对象类型并非AzureSqlDatabaseModel,导致属性访问失败
  • 在字符串拼接或Write-Host中直接使用$database.DatabaseName时,PowerShell的解析逻辑出现偏差(比如对象嵌套或属性为脚本属性)

解决步骤

  1. 确认对象实际属性
    执行以下命令查看$database的所有属性及对应值,验证DatabaseName是否为有效属性:

    $database | Get-Member -MemberType Property
    $database | Select-Object -Property DatabaseName, *
    
  2. 强制解析属性值
    若确认DatabaseName是有效属性,可通过以下方式确保正确取值:

    • 使用子表达式明确解析:
      Write-Host "正在执行文件: $psitem,目标数据库: $($database.DatabaseName)"
      
    • 提前将属性值存入变量:
      $dbName = $database.DatabaseName
      Write-Host "正在执行文件: $psitem,目标数据库: $dbName"
      
  3. 检查对象获取逻辑
    如果你是通过Get-AzSqlDatabase类命令获取$database,确保命令返回的是标准AzureSqlDatabaseModel对象,而非包含元数据的包装对象。可通过$database.GetType().FullName确认对象类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 16:01:12