使用Microsoft Graph更新用户联系人邮箱地址及电话号码
解决Microsoft Graph PowerShell更新联系人邮箱的错误
错误原因
你给-EmailAddresses参数传的哈希表格式完全不对。Graph API要求这个参数接收邮箱地址对象的数组,而不是把邮箱地址直接当成哈希表的键。你写的@{$AadUser.Mail = $AadUser.DisplayName}会让API把邮箱里的@domain.com部分识别成非法的OData注释,从而触发解析错误。
正确的命令格式
-EmailAddresses需要传入包含Address(邮箱地址)和Name(显示名称)属性的哈希表数组。调整后的命令如下:
Update-MgUserContact -ContactId $CurrentContact.Id -UserId $ContactManagementMailboxId ` -EmailAddresses @( @{ Address = $AadUser.Mail Name = $AadUser.DisplayName } )
补充:更新电话号码的示例
如果还要同步电话号码,-Phones参数同样需要数组格式,每个元素要指定号码和类型(可选值包括home/work/mobile等):
Update-MgUserContact -ContactId $CurrentContact.Id -UserId $ContactManagementMailboxId ` -EmailAddresses @( @{ Address = $AadUser.Mail Name = $AadUser.DisplayName } ) ` -Phones @( @{ Number = $AadUser.MobilePhone Type = "mobile" }, @{ Number = $AadUser.BusinessPhones[0] Type = "work" } )
内容的提问来源于stack exchange,提问作者Docschnitzel
相关产品推荐
相关产品推荐

