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

[玩转系统] 使用 PowerShell 和图表在用户邮箱中创建个人联系人

作者:精品下载站 日期:2024-12-14 04:02:55 浏览:11 分类:玩电脑

使用 PowerShell 和图表在用户邮箱中创建个人联系人


建立在以前的基础上

模仿是平庸对伟大的最真诚的奉承形式,”奥斯卡·王尔德说。抛开任何平庸的概念不谈,我喜欢 Sean McAvinue 在他的文章中解释的关于使用 Microsoft Graph API 在用户邮箱中创建组织联系人的想法。这是一个简单的概念:所有组织都有联系人,例如人力资源部、差旅部门和安全部,用户应该能够在紧急情况或其他原因时联系到这些联系人。他们始终可以查找 GAL,但在用户邮箱中创建个人联系人意味着移动设备也可以同步信息。总而言之,这是一个好主意,而且更好的是,Sean 的 PowerShell 代码可以工作。

利用 PowerShell

PowerShell 的美妙之处在于,可以轻松地采用其他人开发的想法并对其进行发展和改进。这就是模仿发挥作用的地方,而脚本可以被采用和增强的想法正是我们在 Practical365.com 想要鼓励的。当我查看代码时,我想到了三个改进:

  • 识别上个月创建的邮箱并在这些邮箱中创建个人联系人。
  • 允许使用 Exchange Online 中任何启用邮件的收件人创建个人联系人。
  • 在尝试创建邮箱之前,请检查邮箱中是否存在个人联系人。

这些都是相对简单的改变。这是我创建代码所做的事情。

查找目标邮箱

要查找上个月创建的邮箱,请针对 WhenMailboxCreated 属性运行带有服务器端筛选器的 Get-ExoMailbox cmdlet。使用邮箱 cmdlet 进行日期比较可能很棘手,但以下代码对我有用:

$LastMonth = (Get-Date).AddDays(-30)
$Mailboxes = Get-ExoMailbox -Filter "WhenMailboxCreated -gt '$LastMonth'" -RecipientTypeDetails UserMailbox | Select ExternalDirectoryObjectId, DisplayName, UserPrincipalName

查找个人联系人的来源

这个想法是允许任何启用邮件的收件人成为个人联系人的来源。 Get-Recipient cmdlet 可以查找所有收件人类型中的任何对象,但我们需要确定应将哪些收件人用作源。为此,我们通过将值写入自定义属性来标记要使用的收件人。所有启用邮件的对象都支持自定义属性,因此我们可以使用用户邮箱、共享邮箱、Microsoft 365 组、通讯组列表、邮件用户和邮件联系人。假设所选收件人已更新为该值,我们可以使用如下命令找到源联系人集:

$OrgContacts = Get-Recipient -Filter {CustomAttribute4 -eq "OrgContact"}

更新个人联系人

原始脚本完成了繁重的工作,创建一个 JSON 结构,定义要添加到用户邮箱的每个个人联系人。我的版本会进行一些解析来处理每种收件人类型。实施的另一项更改是在尝试添加个人联系人之前检查邮箱中是否存在个人联系人。该检查使用过滤器来检查是否存在具有相同电子邮件地址的个人联系人。如果没有找到,我们将继续添加它。这是检查的代码:

$Uri = "https://graph.microsoft.com/v1.0/users/$Mailbox/contacts?`$filter=emailAddresses/any(a:a/address eq '$Email')"
$Results = Invoke-RestMethod -Headers $Headers -Uri $Uri -UseBasicParsing -Method "GET" -ContentType "application/json"

图 1 显示了组织联系人如何显示在用户邮箱中。在这种情况下,联系人的来源包括邮件联系人、通讯组列表、共享邮箱、Microsoft 365 组和用户邮箱。

[玩转系统] 使用 PowerShell 和图表在用户邮箱中创建个人联系人

下一步

与任何 PowerShell 脚本一样,我确信此代码(您可以从 GitHub 下载)可以改进。一方面,我的脚本具有最少的错误处理,因为我尝试说明原理而不是编写现成的代码。无论如何,每个组织都有自己的处理错误、日志记录问题等的方法。最好采用这里解释的想法并以自己的方式实现它。

发挥你的想象力,看看你能做什么。欢迎所有增强功能。没有一个想法是坏的。完成后,请务必分享您所构建的内容。我们都会很感激的。

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

取消回复欢迎 发表评论:

关灯