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

[玩转系统] 如何使用 Microsoft Graph PowerShell 更新用户照片

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

如何使用 Microsoft Graph PowerShell 更新用户照片


Microsoft 365 中的用户个人资料照片管理是一项必要任务,可确保所有用户在组织的服务中以专业的方式呈现。

在本教程中,我将向您展示如何使用 Microsoft Graph PowerShell 将组织中其他用户的用户照片上传到 Microsoft 365。

为什么要手动更新用户照片?

虽然一些组织选择允许最终用户为其公司 Microsoft 365 帐户上传自己的个人资料照片,但这通常会导致用户上传不一致或不专业的照片。

通过允许管理员上传组织内用户的个人资料照片,企业主可以确保所有用户照片与公司品牌一致并保持专业性。

使用 Microsoft Graph PowerShell 执行此任务使管理员能够在用户入门阶段或将来的任何时间为单个或多个用户自动执行此过程。

要求

使用 Microsoft Graph PowerShell 更新 Microsoft 365 中用户的个人资料照片的要求如下:

  • Microsoft Graph PowerShell 模块已安装(至少版本 2)。
  • 全局管理员权限(向 Microsoft Entra 中的应用程序授予权限)

更新组织中其他用户的照片需要 Microsoft Graph 的应用程序权限,这与使用 Microsoft Graph PowerShell 的大多数其他用户管理相关任务不同,后者可以通过委派权限来完成。这为完成这个相当简单的任务增加了另一层复杂性,因此在接下来的步骤中需要使用服务主体。

如何使用 Microsoft Graph PowerShell 更新用户照片

请按照以下步骤使用 Microsoft Graph PowerShell 更新组织中其他用户的 Microsoft 365 照片。

1. 首先在 Microsoft Entra 中注册一个新应用程序(服务主体)。这将允许您连接到它并使用应用程序权限来更新用户照片。按照我在以下帖子中编写的步骤注册新应用程序、分配权限并创建客户端密钥:在 Microsoft Entra 中注册应用程序

您需要分配给服务主体的权限是User.ReadWrite.All

2. 按照上述步骤准备好服务主体后,使用您的客户端密钥连接到 PowerShell 中的 Microsoft Graph。

$ApplicationId = "Value"
$SecuredPassword = "Value"
$tenantID = "Value"

$SecuredPasswordPassword = ConvertTo-SecureString `
-String $SecuredPassword -AsPlainText -Force

$ClientSecretCredential = New-Object `
-TypeName System.Management.Automation.PSCredential `
-ArgumentList $ApplicationId, $SecuredPasswordPassword

Connect-MgGraph -TenantId $tenantID -ClientSecretCredential $ClientSecretCredential

这是连接后我的会话的上下文:

[玩转系统] 如何使用 Microsoft Graph PowerShell 更新用户照片

3. 确保您要上传的个人资料图片尺寸正确。 Microsoft 支持高达 648 x 648 的个人资料图像尺寸。为了确保图像以最高质量显示,我建议您使用允许的最大尺寸。要检查图像的尺寸,请在文件资源管理器中右键单击该图像,然后单击属性,然后单击详细信息选项卡。

4. 现在您已准备好上传照片,请使用 Set-MgUserPhotoContent cmdlet 并提供目标用户的用户名以及目标照片在本地设备上的位置。

Set-MgUserPhotoContent -UserId [email  -InFile `
C:\temp\userphoto.png

5. 通过从 Microsoft Entra 管理中心检查用户来验证照片是否已成功上传。

[玩转系统] 如何使用 Microsoft Graph PowerShell 更新用户照片

更新多个用户的照片

Set-MgUserPhotoContent cmdlet 还可以与某些 PowerShell 逻辑结合使用来同时更新多个用户的照片。其背后的想法是确保每个用户的照片都以他们的名字和姓氏命名,在较大的组织中,最简单的方法是让每个用户在一些指导下自己提供和重命名照片。我在本地计算机上存储了一些示例用户照片,如下所示。

[玩转系统] 如何使用 Microsoft Graph PowerShell 更新用户照片

我还有一个所有用户的 CSV 列表,其中包含他们的名字、姓氏、用户名后缀和图像文件的位置。对于下面的示例,我已从“用户名”列中删除了域后缀,但对于您的数据,请确保包含此后缀。

[玩转系统] 如何使用 Microsoft Graph PowerShell 更新用户照片

下面是一个简单的基线脚本,它将导入包含用户信息的 CSV 文件,并循环遍历每个用户以在 Microsoft 365 中设置他们的个人资料照片。还有一些基本的错误处理来生成脚本无法更新的用户列表图像为.

$Users = Import-CSV c:\temp\userlist.csv
$failed = [System.Collections.Generic.List[Object]]::new()

ForEach ($user in $users){
    Write-host "Setting user profile for $($user.UserName)"
    Try{
        Set-MgUserPhotoContent -UserId $user.username -InFile $user.photo
    } catch {
        Write-host "Unable to set photo for $($user.UserName)"
         $failed.Add($user.UserName)
    }
}

Write-host "Unable to set profile for for the following users: `n" ($failed -join "`n") -ForegroundColor Yellow

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

取消回复欢迎 发表评论:

关灯