当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

作者:精品下载站 日期:2024-12-14 06:46:48 浏览:16 分类:玩电脑

如何使用 PowerShell 创建和分配自定义 Intune 角色


自定义 Intune 角色是提供对 Intune 中资源的委派和受限访问的好方法。例如,您可以防止帮助台用户擦除托管设备或向销售成员提供报告访问权限。

在本教程中,我将向您展示如何使用 Azure 门户和 Microsoft Graph PowerShell 创建自定义 Intune 角色。

为了能够运行本教程中的脚本,您必须确保已安装 Microsoft Graph PowerShell 模块。请查看我的指南此处了解具体操作方法。

Intune 角色是什么?

Microsoft Intune 中的角色是可以分配给用户或用户组的特定权限组。该角色定义用户可以在 Microsoft Intune 中执行哪些操作以及对哪些设备执行。

有多种类型的可用角色,以及创建包含细粒度权限的自定义角色的选项,我将在本教程中介绍这些角色。

Intune 具有以下内置角色:

  • 应用管理器
  • 端点安全管理器
  • 组织消息管理器
  • 学校行政人员
  • 只读运算符
  • Intune 角色管理员
  • 服务台操作员
  • 策略和配置文件管理器

有关每个角色的详细细分,您可以从 Microsoft Intune 门户查看角色属性:

1. 登录 https://intune.microsoft.com/

2. 从左侧菜单中选择租户管理

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

3. 选择角色

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

4. 单击您要查看的角色权限的角色名称

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

5. 选择属性,在右侧,您将看到与该角色分组的所有权限的列表。

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

如何使用 Intune 门户创建自定义 Intune 角色

让我们看一下如何使用 Intune 门户创建自定义角色。如果您一次性创建角色并且不需要将配置复制给其他租户,则以这种方式创建角色会很方便。

首先执行上一节中的步骤 1 > 3。这将带您进入管理门户中的 Intune 角色页面。

  1. 现在您位于 Intune 角色页面,选择创建

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

2. 输入自定义 Intune 角色的名称。

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

4. 向下滚动列表并启用所需的 Intune 角色操作。

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

5. 单击下一步并编写范围选项卡页面的脚本,然后单击创建

6. 现在,您将在角色页面上看到您的自定义 Intune 角色。选择角色以打开属性。

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

7. 从左侧菜单中,选择作业

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

8. 单击分配

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

9. 输入角色分配的名称。

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

10. 单击添加组并添加您想要为其分配此角色的任何用户组。

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

11. 在范围组选项卡上,我选择了所有设备。在此设置的情况下,这定义了您希望分配的用户控制的对象。在此示例中,我授予审批管理员对所有设备的只读访问权限。

[玩转系统] 如何使用 PowerShell 创建和分配自定义 Intune 角色

12. 现在单击下一步,再次单击下一步,然后单击创建。您的自定义角色现已创建并分配。

您还可以按照我的 YouTube 视频中的步骤进行操作。

如何使用 PowerShell 创建自定义 Intune 角色

要使用 Microsoft Graph PowerShell 创建自定义角色,请使用以下脚本。以下是部署脚本的步骤:

  • 填写 $DisplayName$RoleDescription 旁边的字段以匹配您所需的设置。
  • 脚本中有 4 个区域包含值 Microsoft.Intune_Organization_Read,您应该替换该值以包含您所需的权限。
  • 在此处选择所需的权限时,请使用 Microsoft Docs 权限参考。
###
$DisplayName = "My Custom Role2" #Define your role name
$RoleDescription = "My custom role description2" #Define the role description
###

#Import module
Import-Module Microsoft.Graph.DeviceManagement.Administration

#Select beta profile
Select-MgProfile -Name Beta

#Connect to Microsoft Graph
Connect-MgGraph -scopes DeviceManagementRBAC.ReadWrite.All

#Store the URI path
$uri = "https://graph.microsoft.com/beta/deviceManagement/roleDefinitions/"

#Store Json Payload
$json = @'
		{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#deviceManagement/roleDefinitions/$entity",
    "@odata.type": "#microsoft.graph.deviceAndAppManagementRoleDefinition",
    "displayName": "<rname>",
    "description": "<rdesc>",
    "isBuiltInRoleDefinition": true,
    "isBuiltIn": true,
    "roleScopeTagIds": [],
    "permissions": [
        {
            "actions": [
                "Microsoft.Intune_Organization_Read",
            ],
            "resourceActions": [
                {
                    "allowedResourceActions": [
                        "Microsoft.Intune_ManagedDevices_Read",
                    ],
                    "notAllowedResourceActions": []
                }
            ]
        }
    ],
    "rolePermissions": [
        {
            "actions": [
                "Microsoft.Intune_ManagedDevices_Read",
            ],
            "resourceActions": [
                {
                    "allowedResourceActions": [
                        "Microsoft.Intune_ManagedDevices_Read",
                    ],
                    "notAllowedResourceActions": []
                }
            ]
        }
    ]
}
'@

#Update unique payload information
$json = $json -replace '<rname>',$DisplayName
$json = $json -replace '<rdesc>',$RoleDescription

#Create custom Intune role
Invoke-MgGraphRequest -Uri $uri -body $json -Method POST -ContentType "application/json"

您可以在自定义 Intune 角色中应用多个权限,例如,如果您想要包含管理设备读取托管设备更新权限,则可以按如下方式更新 Json 负载:

$json = @'
		{
    "@odata.context": "https://graph.microsoft.com/beta/$metadata#deviceManagement/roleDefinitions/$entity",
    "@odata.type": "#microsoft.graph.deviceAndAppManagementRoleDefinition",
    "displayName": "<rname>",
    "description": "<rdesc>",
    "isBuiltInRoleDefinition": true,
    "isBuiltIn": true,
    "roleScopeTagIds": [],
    "permissions": [
        {
            "actions": [
                "Microsoft.Intune_Organization_Read",
                "Microsoft.Intune_Organization_Update",
            ],
            "resourceActions": [
                {
                    "allowedResourceActions": [
                        "Microsoft.Intune_ManagedDevices_Read",
                        "Microsoft.Intune_Organization_Update",
                    ],
                    "notAllowedResourceActions": []
                }
            ]
        }
    ],
    "rolePermissions": [
        {
            "actions": [
                "Microsoft.Intune_ManagedDevices_Read",
                "Microsoft.Intune_Organization_Update",
            ],
            "resourceActions": [
                {
                    "allowedResourceActions": [
                        "Microsoft.Intune_ManagedDevices_Read",
                        "Microsoft.Intune_Organization_Update",
                    ],
                    "notAllowedResourceActions": []
                }
            ]
        }
    ]
}
'@

使用 PowerShell 将成员和范围分配给 Intune 角色

现在您已经创建了角色,您可能会注意到没有分配的管理员成员或定义的分配范围。使用以下脚本定义角色成员和分配范围。

更新脚本如下:

  • $DisplayName 字段更新为您的角色分配所需的名称
  • $AdminGroupName字段更新为包含目标成员的群组的确切名称
  • 使用分配的角色的确切名称更新 $RoleName 字段
###
$DisplayName = "My Display Name" #Define a name for your role assignment
$AdminGroupName = "Approval Admins" #Define the group that contains the user you wish you assign this role to
$RoleName = "Read-Only Device Role" #Define the name of the active role
###

#Import Module
Import-Module Microsoft.Graph.DeviceManagement.Administration

#Select beta profile
Select-MgProfile -Name Beta

#Connect to Microsoft Graph
Connect-MgGraph -scopes DeviceManagementRBAC.ReadWrite.All

#Store role and group information
$Role = Get-MgDeviceManagementRoleDefinition | Where-Object {$_.DisplayName -eq $Rolename}
$admingroup = Get-MgGroup | Where-Object {$_.DisplayName -eq $AdminGroupName} | select id

#Store URI path
$uri = "https://graph.microsoft.com/beta/deviceManagement/roleAssignments"

#Store Json payload
$json = @'
{
"id":"",
"description":"",
"displayName":"<dname>",
"members":["<admgroup>"],
"resourceScopes":[],
"[email ":"https://graph.microsoft.com/beta/deviceManagement/roleDefinitions('<roleid>')",
"scopeType":"allDevices"
}
'@

#Update unique payload information.
$json = $json -replace '<roleid>',$Role.id
$json = $json -replace '<dname>',$DisplayName
$json = $json -replace '<admgroup>',$admingroup.id


#Create role assignment
Invoke-MgGraphRequest -Uri $uri -body $json -Method POST -ContentType "application/json"

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯