你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Set-AzureRmRoleDefinition

在 Azure RBAC 中修改自定义角色。 以 JSON 文件或 PSRoleDefinition 的形式提供修改后的角色定义。 首先,使用 Get-AzureRmRoleDefinition 命令检索要修改的自定义角色。 然后,修改要更改的属性。 最后,使用此命令保存角色定义。

警告

截至 2024 年 2 月 29 日,AzureRM PowerShell 模块已正式弃用。 为了确保持续获得支持和更新,建议用户从 AzureRM 迁移到 Az PowerShell 模块。

尽管 AzureRM 模块仍可能正常运行,但它不再维护或受支持,但会根据用户的自由裁量权和风险继续使用任何继续使用模块。 有关过渡到 Az 模块的指导,请参阅我们的迁移资源

语法

Set-AzureRmRoleDefinition
   -InputFile <String>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]
Set-AzureRmRoleDefinition
   -Role <PSRoleDefinition>
   [-DefaultProfile <IAzureContextContainer>]
   [<CommonParameters>]

说明

Set-AzureRmRoleDefinition cmdlet 更新 Azure 基于角色访问控制中的现有自定义角色。 将更新的角色定义作为命令的输入作为 JSON 文件或 PSRoleDefinition 对象提供。 更新后的自定义角色的角色定义必须包含该角色的 ID 和所有其他必需属性,即使它们未更新:DisplayName、Description、Actions、AssignableScopes。 NotActions、DataActions、NotDataActions 是可选的。 下面是 Set-AzureRmRoleDefinition { “Id”的示例更新角色定义 json: “52a6cc13-ff92-47a8-a39b-2a8205c3087e”, “Name”: “Updated Role”, “Description”: “Can monitor all resources and restart virtual machines”, “Actions”: [ “/read”, “Microsoft.ClassicCompute/virtualmachines/restart/action”, “Microsoft.ClassicCompute/virtualmachines/start/action” ], “NotActions”: [ “/write” ], “DataActions”: [ “Microsoft.存储/storageAccounts/blobServices/containers/blobs/read“ ], ”NotDataActions“: [ ”Microsoft.存储/storageAccounts/blobServices/containers/blobs/write“ ], ”AssignableScopes“: [”/subscriptions/xxxxxxxx-xxxx-xxxxxx“] }

示例

使用 PSRoleDefinitionObject 进行更新

PS C:\> $roleDef = Get-AzureRmRoleDefinition "Contoso On-Call"
          PS C:\> $roleDef.Actions.Add("Microsoft.ClassicCompute/virtualmachines/start/action")
          PS C:\> $roleDef.Description = "Can monitor all resources and start and restart virtual machines"
          PS C:\> $roleDef.AssignableScopes = @("/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx")

          PS C:\> Set-AzureRmRoleDefinition -Role $roleDef

使用 JSON 文件创建

PS C:\> Set-AzureRmRoleDefinition -InputFile C:\Temp\roleDefinition.json

参数

-DefaultProfile

用于与 azure 通信的凭据、帐户、租户和订阅

Type:IAzureContextContainer
Aliases:AzureRmContext, AzureCredential
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InputFile

包含要更新的单个 json 角色定义的文件名。 仅包含要在 JSON 中更新的属性。 Id 属性为必需。

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Role

要更新的角色定义对象

Type:PSRoleDefinition
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

输入

PSRoleDefinition

参数:角色(ByValue)

输出

PSRoleDefinition

备注

关键字:azure, azurerm, arm, 资源, 管理, 经理, 资源组, 模板, 部署