Get-AzResourceGroup:“ this.Client.SubscriptionId”不能为null

时间:2019-04-05 14:54:14

标签: azure powershell azure-devops

Azure和Powershell有点问题。我只是在检查资源组是否存在,并且不断出现此错误。此后的下一步是创建资源组(如果资源组不存在),但这也会引发相同的错误。希望有人可以提出一些解决方法或修正。

请注意,我有权访问订阅,可以看到它们并成功设置了默认订阅,如下面的脚本所示。

返回完整错误

'this.Client.SubscriptionId' cannot be null.
At **********************\envir\create-env.ps1:21 char:1
+ Get-AzResourceGroup -Name $resourceGroup -ErrorVariable $doesNotExist ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Get-AzResourceGroup], ValidationException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.GetAzureResourceGroupCmdlet

我刚刚安装了Az模块,下面是版本详细信息。

Version    Name                                Repository
-------    ----                                ----------
1.6.0      Az                                  PSGallery

我只是在运行一个非常简单的脚本(如下),我认为这可能与未设置默认订阅有关,但是设置没有任何区别。

$passwd = ConvertTo-SecureString $servicePrincipalKey -AsPlainText -Force
$pscredential = New-Object 
System.Management.Automation.PSCredential($servicePrincipalUserName, $passwd)
Connect-AzAccount -ServicePrincipal -Credential $pscredential -TenantId $tenantId
Select-AzureSubscription -Default -SubscriptionName $subscriptioName
Get-AzResourceGroup -Name $resourceGroup -ErrorVariable $doesNotExist 

然后我得到上面列出的错误。

1 个答案:

答案 0 :(得分:1)

我发现了问题,我创建的服务主体没有足够的访问权限,如@ 4c74356b41所建议,我最终给了它一个贡献者的角色,并解决了问题。