gpt4 book ai didi

azure - 如何在azure中提取资源级别的所有标签

转载 作者:行者123 更新时间:2023-12-03 07:07:34 24 4
gpt4 key购买 nike

我正在尝试拉取 azure 中的所有标签资源级别

$subscripionList = Get-AzSubscription 


foreach ($subscriptionId in $subscripionList) {
Write-Host 'Getting details about SubscriptionId :' $subscriptionId
Set-AzContext -Subscription $subscriptionId
#Select-AzureRmSubscription -SubscriptionName $subscriptionId

$resourcesgroups = Get-AzResourceGroup

foreach($resourcesgroup in $resourcesgroups){

Write-Host 'resourcegroup :' $resourcesgroup

$resources = Get-AzResource -ResourceGroupName $resourcesgroup.ResourceGroupName
#$azure_resources = Get-AzResource


foreach($resource in $resources){

Write-Host $resource
{
#Fetching Tags
$Tags = $resource.Tags

#Checkign if tags is null or have value
if($Tags -ne $null)
{
foreach($Tag in $Tags)
{
$TagsAsString += $Tag.Name + ":" + $Tag.Value + ";"
}
}
else
{
$TagsAsString = "NULL"
}



}
}
}
  1. 我正在尝试获取所有订阅
  2. 我正在尝试获取所有资源组
  3. 我正在尝试获取资源组中存在的所有资源
  4. 尝试获取所有标签

但是我无法获取标签,谁能指导我如何将所有标签导出到 csv 文件中。

最佳答案

由于没有 $tag.Name$Tag.Value ,您的代码不存储任何值。您正在查看的输出存储为 $tags.keys$tags.values。因此,要收集它们,您将不得不再次使用 for 循环。我通过使用以下脚本替换资源的 for every 循环进行了相同的测试:

$TagsAsString=@() 
$tagkeys =@()
$TagValues =@()
$resources = Get-AzResource -ResourceGroupName <resourcegroupname>
foreach($resource in $resources){
Write-host ("ResourceName :")$resource.Name
if($resource.Tags -ne $null){
foreach($Tag in $resource.Tags){
foreach($key in $Tag.keys){
$tagkeys += $key
}
foreach($value in $Tag.values){
$TagValues += $value
}
}
}
else{
Write-Host ("No Tags")
}
}
for($i = 0; $i -lt $tagkeys.Length; $i++) {
$TagsAsString=( '{0} : {1}' -f $tagkeys[$i], $tagvalues[$i] )
Write-Host $TagsAsString
}

输出:

enter image description here

关于azure - 如何在azure中提取资源级别的所有标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71149444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com