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

[玩转系统] 如何使用 Microsoft Graph PowerShell 报告所有用户和组成员身份

作者:精品下载站 日期:2024-12-14 06:51:50 浏览:17 分类:玩电脑

如何使用 Microsoft Graph PowerShell 报告所有用户和组成员身份


如果您只需要找出单个用户,那么作为管理员确定用户属于哪些组是非常简单的。从 Microsoft Entra 中,您只需找到目标用户并单击“组”选项卡即可。但是,使用管理门户并不总是首选,特别是当您需要经常查找此信息或需要找出每个用户的组成员身份时。

在本教程中,我将向您展示如何使用 Microsoft Graph PowerShell 生成所有用户组成员身份的报告。

关于 Get-MgUserMemberOfAsGroup

Get-MgUserMemberOfAsGroup cmdlet 允许您查找用户所属的组,这在尝试解决基于访问的问题时很有帮助,或者晚上如果您被要求为单个用户生成成员资格报告或您组织中的所有用户。

该 cmdlet 是 Microsoft.Graph.Users 模块的一部分,因此,您需要确保安装了最新版本的 Microsoft Graph PowerShell 模块。有关如何安装此模块的详细信息,请按照我的如何安装 Microsoft Graph PowerShell 模块教程。

有关此 cmdlet 的更多信息,请参阅以下内容:

  • 名称: Get-MgUserMemberOfAsGroup
  • 方法:GET
  • URI: https://graph.microsoft.com/v1.0/users/{user-id}/memberOf/group
  • 输出类型:对象
  • 权限: User.Read.All、Directory.Read.All

查找用户所属的所有组

您可以使用下面的代码来获取单个用户所属的组的列表。确保使用目标用户的用户名更改 -UserId 字段。

Connect-MgGraph -Scopes user.read.all, directory.read.all

Get-MgUserMemberOfAsGroup -UserId [email 

上述命令的结果将如下所示:

[玩转系统] 如何使用 Microsoft Graph PowerShell 报告所有用户和组成员身份

使用 Microsoft Graph PowerShell 报告所有用户和组成员身份

我们可以扩展最后一个命令,以生成 Microsoft 365 租户中所有用户及其组成员身份的报告。为此,我们将使用 ForEach 命令循环遍历每个用户并将这些信息添加到数组中。然后该数组将导出为 CSV。

有关如何使用 ForEach 循环生成您自己的自定义报告的更多详细信息,请参阅我的教程如何通过示例使用 Powershell Foreach 循环

Connect-MgGraph -Scopes user.read.all, directory.read.all

$users = Get-MgBetaUser -All
$Report = [System.Collections.Generic.List[Object]]::new()

ForEach ($user in $users){
    $groups = $null
    $groups = Get-MgUserMemberOfAsGroup -UserId $user.UserPrincipalName
    ForEach ($group in $groups){
        $obj = [PSCustomObject][ordered]@{
        "User" = $User.UserPrincipalName
        "Group Name" = $group.DisplayName
        "Is M365 Group" = $(if ($group.GroupTypes -match 'Unified'){"Yes"}Else{"No"})
        "Membership Type" = $(if ($group.GroupTypes -match 'DynamicMembership'){"Dynamic"}Else{"Assigned"})
        "Security Enabled" = $group.SecurityEnabled
        "Mail Enabled" = $group.MailEnabled
        "Mail Address" = $(if ($Group.mail -eq $Null){"N/A"}Else{$group.mail})
         }
         $report.Add($obj)
    }
}

$report | Export-csv -path C:\temp\UserGroupMemberReport.csv

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

取消回复欢迎 发表评论:

关灯