PowerShell导出Azure存储账户无法获取Sku.Name属性求助
问题原因
代码的核心错误是自定义PSCustomObject的属性名前错误添加了$符号,PowerShell会将$Name这类写法识别为变量而非固定属性名,导致输出结构异常,也会影响属性的正常读取。
修正后代码
$result=@() $storageaccounts= Get-AzStorageAccount foreach($storageaccount in $storageaccounts){ $obj = [PSCustomObject]@{ # 属性名前不可加$,按需可调整为你需要的英文字段名 存储账户名称 = $storageaccount.StorageAccountName 资源组名称 = $storageaccount.ResourceGroupName 部署区域 = $storageaccount.Location 账户类型 = $storageaccount.Kind 复制策略 = $storageaccount.Sku.Name } $result += $obj } # 替换双引号内的路径为你实际的保存路径 $result | Export-Csv -Path "自定义保存路径.csv" -Encoding UTF8 -NoTypeInformation
补充说明
- 新增的
-Encoding UTF8参数可避免CSV文件打开时出现中文乱码,-NoTypeInformation参数可去掉CSV开头多余的类型标识行 - 如果需要保留英文字段名,直接将属性名替换为
Name、Location、Kind、Replication即可,注意不要加$前缀 - 若运行后仍无法读取
Sku.Name,可先执行Get-AzStorageAccount | Select-Object -First 1 -ExpandProperty Sku确认Sku属性结构,升级Az.Storage模块到最新版本即可解决属性读取异常问题
内容的提问来源于stack exchange,提问作者TechGeek
相关产品推荐
相关产品推荐

