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

[玩转系统] 如何将 Update-MgUser 与 Microsoft Graph PowerShell 结合使用

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

如何将 Update-MgUser 与 Microsoft Graph PowerShell 结合使用


如果您熟悉命令,那么使用 PowerShell 在 Microsoft 365 中进行简单的用户更改可能比使用管理控制台更快、更高效。如果您需要通过自动执行重复任务来为多个用户执行大规模更改,它也会有很大帮助。

在本教程中,我将向您展示如何使用 Microsoft Graph PowerShell 中的 Update-MgUser cmdlet 来更改 Microsoft 365 中的用户帐户。

关于 Update-MgUser cmdlet

Update-MgUser cmdlet 属于 Microsoft.Graph.Users 模块,该模块是 Microsoft Graph PowerShell SDK 的一部分。它用于更改 Microsoft 365 中用户帐户的配置。

在幕后,当您使用 Update-MgUser cmdlet 时,将使用 PATCH 请求方法调用 Microsoft Graph API 的以下 URL:

https://graph.microsoft.com/v1.0/users/{id}

Update-MgUser 所需的权限

运行此 cmdlet 并成功更新用户所需的最低权限级别是 User.ReadWrite.All 权限。但是,还有其他权限范围包含更新用户的权限,这些是:

  • 用户.管理身份.全部
  • 目录.读写.全部

例如,您可以从下图中看到,我创建了一个仅具有 User.ManageIdentities.All 权限范围的新 Microsoft Graph PowerShell 会话。这样,我可以更新租户中用户的 DisplayName 字段。

[玩转系统] 如何将 Update-MgUser 与 Microsoft Graph PowerShell 结合使用

使用 Microsoft Graph PowerShell 更改用户 UPN

使用 Microsoft Graph PowerShell 可以快速轻松地更改 Microsoft 中用户的 UPN(或用户主体名称)。您只需将 Update-MgUser cmdlet 与 -UserPrincipalName 参数结合使用,如下例所示:

Update-MgUser -UserId [email  '
-UserPrincipalName "[email "

了解在 Microsoft 365 中修改用户的 UPN 的影响仍然很重要,因为如果以计划不周的方式执行此命令,可能会对他们的工作效率产生不利影响。

您应该知道,在更改用户 UPN 的域部分时,您必须指定一个处于活动状态并被租户接受的域。这可以是自定义域,例如 ourcloudnetwork.com 或默认(或“后备”)域,格式为 company.onmicrosoft.com。

如何更改多个用户的 UPN

我们上面使用的 Update-MgUser cmdlet 和示例可以在单个命令中进行调整并应用于多个用户,这有助于简化更改并保持更改一致且避免人为错误。

为此,我们将在 PowerShell 中使用简单的 ForEach 循环。

首先根据条件收集用户。您可能想要更改租户中的所有用户,因此只需使用 Get-MgUser -All 就足够了。对于我的示例,我将把所有用户存储在一个数组中,然后将 UPN 更改为具有不同的域。下面我指定了在其 UPN 中具有特定域的所有用户,然后我将对其进行更改。

$users = Get-MgUser | Where UserPrincipalName -match ourcloudnetwork.co.uk

如果您想详细了解 Get-MgUser cmdlet 以使用更高级的查询,请查看我的指南:如何将 Get-MgUser 与 Microsoft Graph PowerShell 结合使用

我们可以直接在 PowerShell 会话中输入 $users 变量,以确认所有所需用户均已成功存储。如果还想快速指定数组中有多少个项目(用户),请输入 $users.count

要循环访问每个用户并更新 UserPrincipalName,我们可以使用以下示例。

$newdomain = "x7kxf.onmicrosoft.com" ##Add your accepted domain
ForEach ($user in $users) {
    $string = $null
    $userupn = $null
    $string = ($user.UserPrincipalName)
    $regex = "(\S*)(\.(\S*))?@(\S*)"
    $string -match $regex
    $userupn = $matches[1] + "@" + $newupn
    Update-MgUser -UserId $user.UserPrincipalName -UserPrincipalName $userupn
    Write-host "UPN for $($user.DisplayName) has been updated to $userupn"
}

如果使用正则表达式将 UPN 分为 2 部分:前缀和域。您可以使用上面的示例并根据您的需要进行修改。

如何使用 Microsoft Graph PowerShell 更改其他用户属性

我们在上面看到,Update-MgUser cmdlet 有许多可用参数,所有参数都有不同的名称并执行不同的操作。以下是您在日常活动中可能遇到的一些常见的用户更改示例。

更新用户的关于我

Update-MgUser -UserId [email  -AboutMe "String"

更新用户的城市

Update-MgUser -UserId [email  -City "String"

更新用户的国家/地区

Update-MgUser -UserId [email  -Country "String"

更新用户的部门

Update-MgUser -UserId [email  -Department "String"

更新用户的显示名称

Update-MgUser -UserId [email  -DisplayName "String"

更新用户的职位

Update-MgUser -UserId [email  -JobTitle "String"

更新用户的主 SMTP 地址。此字段必须包含您的租户中接受的域之一。

Update-MgUser -UserId [email  -Mail "String"

如何一次更改单个用户的多个用户属性

如果您需要在同一命令中一次更新单个用户的多个属性,为了简单起见,您可以在同一命令中定义多个参数,而不是使用多行代码。例如,如果用户在同一命令中对其 DisplayName、UpdatePrincipalName 和邮件地址进行了姓名更改(例如结婚),则可以使用以下命令:

Update-MgUser -UserId [email  '
-DisplayName "Daniel Bradley" `
-UserPrincipalName "[email " `
-Mail "[email "

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

取消回复欢迎 发表评论:

关灯