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

[玩转系统] Get-UnifiedGroup - 管理 Microsoft 365 组

作者:精品下载站 日期:2024-12-14 01:58:15 浏览:15 分类:玩电脑

Get-UnifiedGroup - 管理 Microsoft 365 组


Get-UnifiedGroup cmdlet 是 Exchange Online 模块的一部分,允许您查看所有 Microsoft 365 组。当您将该 cmdlet 与 Get-UnifiedGroupLinks cmdlet 结合使用时,您可以在 PowerShell 中查看所有组和成员。

使用 Exchange Online 模块管理 Microsoft 365 组可能会感觉有点奇怪,但它仍然工作得很好。但是,如果需要,您也可以使用较新的 Microsoft Entra PowerShell 模块。

在本文中,我将向您展示如何使用 Get-UnifiedGroup cmdlet 获取 Microsoft 365 组信息、将组导出到 Excel 以及使用 Get-UnifiedGroupLinks cmdlet 查看组成员。

要求

Get-UnifiedGroup cmdlet 是 Exchange Online PowerShell 模块的一部分。在使用 cmdlet 之前,您需要确保已安装 Exchange Online 模块并且已连接到 Exchange Online。

# Connect to Exchange Online
Connect-ExchangeOnline -UserPrincipalName [email protected] -ShowBanner:$false

如果您未连接到 EO,那么当您尝试使用 cmdlet 时,您将收到以下错误:

Get-UnifiedGroup:术语“Get-UnifiedGroup”未被识别为 cmdlet 的名称

获取所有 Microsoft 365 组

当您运行不带任何参数的 cmdlet 时,它将仅返回租户中的所有 Microsoft 365 组以及基本信息,如下面的屏幕截图所示。

Get-UnifiedGroup

[玩转系统] Get-UnifiedGroup - 管理 Microsoft 365 组

上面的示例来自一个小环境,因此我们将所有组集中在一个概述中。但是,当您拥有大型环境时,您可能希望使用一些过滤器来仅获取您正在查找的组。

在过滤方面,我们有几个非常有用的选项。当然,我们可以根据名称(显示名称)获取组,但我们也可以获取具有特定所有者或没有所有者的所有组。或者也很方便,创建 Microsoft 团队时创建的所有组。

获取特定组

我们还可以根据组或其一部分的名称获取 Microsoft 365 组。如果您知道确切的名称,那么使用 -Identity 参数后跟组名称会更容易。

但是,当您不知道确切的名称时,您也可以使用 -Filter 选项并使用通配符搜索组名称的一部分:

# Get group based on name
Get-UnifiedGroup -Identity "Lazy Project"

# Use wildcards to find the group
Get-UnifiedGroup -Filter {name -like "Lazy*"}

[玩转系统] Get-UnifiedGroup - 管理 Microsoft 365 组

按或不按所有者分组

我们还可以使用 Get-UnifiedGroup cmdlet 根据所有者获取组。当您想知道特定用户正在管理哪些组,或者甚至可能需要替换多个组的所有者时,这尤其有用。

要获取所有者,我们需要比较组对象的 ManagedBy 属性:

Get-UnifiedGroup | Where-Object {$_.ManagedBy -eq "MeganB"}

要获取没有所有者的所有组,我们可以使用以下命令:

Get-UnifiedGroup | Where-Object {-Not $_.ManagedBy}

我还创建了一个脚本,允许您获取没有所有者的所有组,并自动为您设置所有者。该脚本可以将组成员设置为所有者(同时为您提供选择一个的选项),也可以回退到默认用户来设置为所有者。

获取 Microsoft Teams 配置的组

我想向您展示的最后一个选项是如何获取创建 Microsoft 团队时创建的所有组。为此,我们可以使用属性 ResourceProvisioningOptions 并检查它是否等于 Team:

Get-UnifiedGroup -Filter {ResourceProvisioningOptions -eq "Team"}

导出所有组

例如,当您想要将组信息导出到 Excel 时,仅选择您真正需要的数据非常重要。否则,您将获得比您需要的更多的信息,从而使处理数据变得更加困难。

下面我创建了一个示例,其中包含您可能需要的最有用的信息。我还添加了一个计算属性来计算组的所有者数量。

$properties = 
        "DisplayName",
        "AccessType",
        "PrimarySmtpAddress",
        @{
            Name = 'GroupOwnerCount' 
            Expression = { $_.ManagedBy.count }
        },
        "GroupMemberCount",
        "GroupExternalMemberCount",
        "SharePointSiteUrl",
        "ManagedBy",
        "WhenCreated"

# Get all groups
Get-UnifiedGroup | Select-Object -Property $properties | Export-CSV -path "C:\temp\groups.csv"

您可以在我的 GitHub 存储库中找到完整的脚本

获取群组成员

现在我们知道了如何获取 Microsoft 365 组,我们还来看看如何获取组成员。要获取组成员,我们需要使用 Get-UnifiedGroupLinks cmdlet。此 cmdlet 将返回给定组的成员或所有者。

要获取组的成员或所有者,我们可以使用以下命令:

# Get the group member
Get-UnifiedGroupLinks -Identity "Lazy project" -LinkType member

# Get the group owners
Get-UnifiedGroupLinks -Identity "Lazy project" -LinkType owner

[玩转系统] Get-UnifiedGroup - 管理 Microsoft 365 组

为了获得完整的概述,我们需要组合这两个命令。我们可以通过使用 PSCustomObject 将结果合并到一个表中来完成此操作。我们还需要从成员列表中过滤掉所有者,因为所有者始终也是组的成员。

我创建了一个脚本,它将为您获取所有 Microsoft 365 组成员和所有者,将它们组合成一个概述,并允许您将结果导出到 Excel(如果需要)。

添加和删除组成员

我想向您展示的最后一件事是如何在组中添加和删除成员或所有者。对于所有者而言,重要的是要知道,在将用户添加为所有者之前,您首先需要将该用户设为成员。然后我们可以将会员提升为所有者。

要删除所有者,我们需要颠倒步骤,因此首先将所有者降级为组的成员,然后我们可以删除该成员。

因此,要将成员添加到组中,您可以使用以下命令:

# Add a user as member
Add-UnifiedGroupLinks -Identity "Lazy Project" -LinkType Members  -Links [email protected]

# Make from the member user an owner
Add-UnifiedGroupLinks -Identity "Lazy Project" -LinkType Owners -Links [email protected]
  • 身份:群组的别名、显示名称或电子邮件地址
  • LinkType:可以是订阅者、成员或所有者
  • 链接:您要添加的用户的别名、显示名称或电子邮件地址。 (可以添加多个用户,以逗号分隔)

删除成员或所有者非常相似,我们仅使用Remove-UnifiedGroupLinks cmdlet:

# Remove an owner
Remove-UnifiedGroupLinks -Identity "Lazy Project" -LinkType Owners -Links [email protected] 
Remove-UnifiedGroupLinks -Identity "Lazy Project" -LinkType Members -Links [email protected]

# To remove only a member
Remove-UnifiedGroupLinks -Identity "Lazy Project" -LinkType Members -Links [email protected] 

总结

定期检查 Microsoft 365 租户中的组及其所有者始终是个好主意。特别是对于使用 Teams 自动创建的组,您有时会看到多个具有几乎相同名称的组。这些概述可以帮助您识别问题并将所有组合并在一起。

除了 get-unifiedgroup cmdlet 之外,我们还可以使用较新的 Microsoft Entra PowerShell 模块来管理组。请务必也检查一下。

希望您喜欢这篇文章,如果您有任何疑问,请在下面发表评论。

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

取消回复欢迎 发表评论:

关灯