Azure PowerShell:如何查看命令返回的完整属性列表?
问题解答
关于(Get-AzContext).Subscription.id的来源
Az PowerShell模块返回的对象本质是.NET类型实例,官方文档有时只会列出常用的顶层属性,不会把所有嵌套属性一一枚举。回答者大概率是通过这些方式发现的:
- 实际探索对象结构:先获取上下文对象,再查看
Subscription属性的具体内容(比如执行(Get-AzContext).Subscription | fl *),就能直接看到id属性; - 社区经验或源码参考:Az模块是开源的,有人会直接查看源码里的对象定义,或是在社区交流中积累了这类实用技巧;
- PowerShell原生的对象探索特性:用
Get-Member或直接遍历属性,本来就是PowerShell用户探索未知对象的常规操作。
获取Azure PowerShell命令返回的所有属性
你试过的方法没拿到完整列表,主要是因为默认命令的显示深度或范围有限,试试这些更彻底的方式:
- 查看嵌套对象的属性:比如
Get-AzContext返回的对象里,Subscription是一个子对象,单独查看它的属性才能看到全部内容,记得加-Force显示隐藏属性:(Get-AzContext).Subscription | Get-Member -Force - 用JSON展开所有层级:PowerShell默认格式输出会截断嵌套深度,转成JSON可以完整展示所有属性,记得设置足够的深度值:
# 获取Get-AzContext的全量属性 Get-AzContext | ConvertTo-Json -Depth 10 # 以Get-AzSqlDatabase为例 $db = Get-AzSqlDatabase -ResourceGroupName "rg-name" -ServerName "server-name" -DatabaseName "db-name" $db | ConvertTo-Json -Depth 10 - 存储变量后逐层探索:把命令结果存到变量里,再逐层访问查看属性,比如:
$ctx = Get-AzContext # 查看ctx的所有属性 $ctx | gm -Force # 查看ctx.Subscription的所有属性 $ctx.Subscription | gm -Force # 强制显示所有属性的取值 $ctx | Select-Object -Property * -Force
这些方法能帮你挖出任何Azure PowerShell命令返回对象的所有属性,不管是顶层还是嵌套的。
内容的提问来源于stack exchange,提问作者Francesco Mantovani
相关产品推荐
相关产品推荐

