如何使用 Microsoft Graph PowerShell 将用户添加到组
在创建新用户和一般持续支持期间,将用户添加到 Microsoft 365 或 Microsoft Entra 中的组是常见需求。虽然这是通过 Web 管理中心完成的一项简单任务,但出于简单性和自动化目的,仍然需要使用 Microsoft Graph PowerShell 以编程方式完成此任务。
在本教程中,我将向您展示如何使用 Microsoft Graph PowerShell 将单个或多个用户添加到组中。
关于 New-MgGroupMember cmdlet
New-MgGroupMember cmdlet 允许您将单个用户添加到特定组,无论是安全组、通讯组还是 Microsoft 365 组。由于一次只能添加一个用户,因此可以使用循环在单个命令或脚本中添加多个用户。
New-MgGroupMember 属于 Microsoft Graph PowerShell 中的 Microsoft.Graph.Groups 模块。可以使用以下命令手动安装该模块:
Install-Module Microsoft.Graph.Groups将用户添加到组还需要最低级别的权限,必须同意以下权限:
- GroupMember.ReadWrite.All
- User.ReadWrite.All
要使用上述权限连接到 Microsoft Graph PowerShell,您可以使用以下命令并以全局管理员用户身份登录:
Connect-MgGraph -Scopes GroupMember.ReadWrite.All, User.ReadWrite.All连接到 Microsoft Graph PowerShell 后,您可以继续将用户添加到组。
使用 Microsoft Graph PowerShell 将单个用户添加到组
与许多 Microsoft Graph PowerShell cmdlet 一样,New-MgGroupMember cmdlet 的怪癖之一是,它不使用组或用户的唯一名称(或用户名),而是要求您输入目录 ObjectID,这是较少用户友好的。
可以使用 Microsoft Graph PowerShell 中的 -Search 参数轻松找到用户和组的 ObjectID。
我在博客“如何将 Get-MgUser 与 Microsoft Graph PowerShell 结合使用”中详细介绍了 -Search 参数
首先使用以下命令存储目标组和目标用户的目录对象:
$group = Get-MgGroup -Search '"DisplayName:GroupName"' -ConsistencyLevel eventual
$user = Get-MgUser -Search '"DisplayName:UserDiplayName"' -ConsistencyLevel eventual然后,要将用户添加到目标组,请使用 New-MgGroupMember cmdlet 并引用用户和组的 ObjectID:
New-MgGroupMember -GroupId $group.id -DirectoryObjectId $user.id将多个用户添加到组中
将多个用户添加到组的最简单方法是使用 PowerShell 循环循环访问一组用户,同时运行 New-MgGroupMember cmdlet。
有关如何在 PowerShell 中使用循环的更多详细信息,请查看我的详细博客:如何通过示例使用 Powershell Foreach 循环。
首先,我们将使用与上一个示例类似的代码。相反,这次我们将使用 -Filter 参数和 Get-MgUser cmd 来检索我们想要定位的用户列表。
$group = Get-MgGroup -Search '"DisplayName:Test2"' -ConsistencyLevel eventual
$users = Get-MgUser -Filter "endsWith(mail,'ourcloudnetwork.com')" -ConsistencyLevel eventual
现在 $users 变量包含一个用户数组,我们可以按如下方式循环访问用户:
Foreach ($user in $users) {
Write-host "Adding user $($User.DisplayName) ..." -ForegroundColor Cyan
New-MgGroupMember -GroupId $group.id -DirectoryObjectId $user.id
}