为什么VScode pwsh终端无法看到我的Azure资源组?

时间:2019-07-12 07:54:47

标签: azure powershell visual-studio-code

我正在尝试使用CSV文件中的标签从azure标记所有正在运行的VM,但是从VSCode PowerShell核心终端运行时,PowerShell脚本失败。

我仔细检查了一下,并设置了正确的活动订阅(我们有多个租户和订阅),但是输出显示它找不到我的资源组(肯定有资源组)。

Enable-AzureRmAlias
$csv = import-csv "C:\Users\popes\Desktop\Jedox\Powershell scripts\Tagging\Tagging.csv"

$csv | ForEach-Object {
    # Retrieve existing tags
    $tags = (Get-AzResource -ResourceGroupName $_.RG -ResourceType "Microsoft.Compute/virtualMachines" -Name $_.VM).Tags

    # Define new value pairs from CSV
    $newTags = @{
        company     = $_.Company
        dns         = $_.DNS
        type        = $_.Type
        CN          = $_.CN
    }

    # Add new tags to existing set (overwrite conflicting tag names)
    foreach($CN in $newTags.Keys){
        $tags[$_] = $newTags[$_]
    }

    # Update resource with new tag set
    Set-AzResource  -ResourceGroupName $_.RG -Name $_.VM -Tag $tags -ResourceType "Microsoft.Compute/virtualMachines"
}

输出:

Get-AzResource : Resource group 'machine774_rg' could not be found.
At line:3 char:14
+ ...    $tags = (Get-AzResource -ResourceGroupName $_.RG -ResourceType "Mi ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : CloseError: (:) [Get-AzResource], CloudException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResourceCmdlet

Cannot index into a null array.
At line:15 char:9
+         $tags[$_] = $newTags[$_]
+         ~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : NullArray

1 个答案:

答案 0 :(得分:0)

尝试使用Clear-AzContext,然后使用特定的租户和订阅Connect-AzAccount -Tenant "xxxx-xxxx-xxxx-xxxx" -SubscriptionId "yyyy-yyyy-yyyy-yyyy"登录。