使用New-AZVM cmdlet创建Azure虚拟机时遭遇权限错误的求助
使用
New-AZVM -name "testvm"命令创建Azure虚拟机时,遇到了如下权限错误:New-AzVM: The client 'f5a68dde-2f3c-45a6-ae2c-cf6338f13389' with object id 'f5a68dde-2f3c-45a6-ae2c-cf6338f13389' does not have authorization to perform action 'Microsoft.Compute/virtualMachines/read' over scope '/subscriptions/7ade4c7f-7aad-46c2-bd47-74bf2a2a5d23/resourceGroups/Dungvm2/providers/Microsoft.Compute/virtualMachines/Dungvm2' or the scope is invalid. If access was recently granted, please refresh your credentials.
我在Azure账号上拥有Owner权限,并且能通过Azure门户正常创建虚拟机,想请教下该怎么解决这个问题?谢谢!
你好,结合你的情况,我整理了几个实用的排查方向,你可以逐个试一下:
确认PowerShell会话的订阅是否匹配
有时候登录Azure PowerShell后,默认活跃的订阅可能和你在门户操作的不是同一个。先运行Get-AzSubscription查看所有可用订阅,确认错误信息里的目标订阅(7ade4c7f-7aad-46c2-bd47-74bf2a2a5d23)是否是当前会话的活跃订阅。如果不是,用Set-AzSubscription -SubscriptionId "7ade4c7f-7aad-46c2-bd47-74bf2a2a5d23"切换到正确的订阅后再重试。刷新Azure凭据
错误提示里也提到了“若刚获取权限请刷新凭据”,你可以先运行Clear-AzContext清除当前会话的上下文,再用Connect-AzAccount重新登录账号,确保会话使用的是最新的权限信息。显式指定资源组参数
你的命令只指定了VM名称,没有明确指定资源组,PowerShell可能默认使用了某个资源组(比如错误里的Dungvm2),而这个资源组可能不在你有权限的订阅范围内。建议在命令里加上资源组参数,比如:New-AzVM -Name "testvm" -ResourceGroupName "你常用的资源组名称"确保这个资源组是你在门户里能正常操作的那一个。
检查角色分配的作用域
虽然你说有Owner权限,但可以确认下这个权限的作用域是否覆盖了目标订阅。运行Get-AzRoleAssignment -SignInName "你的登录邮箱",查看结果里的Scope字段是否包含目标订阅ID,RoleDefinitionName是否为Owner。如果权限仅作用于某个特定资源组,而你操作的是其他资源组,也会触发权限错误。
这些步骤里,订阅匹配和凭据刷新是最常见的解决点,可以先从这两个开始排查。
备注:内容来源于stack exchange,提问作者user3324351

