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

[玩转系统] 使用 PowerShell 将联系人批量导入到 Microsoft 365

作者:精品下载站 日期:2024-12-14 05:50:23 浏览:18 分类:玩电脑

使用 PowerShell 将联系人批量导入到 Microsoft 365


我们喜欢添加新联系人,在 Microsoft 365 中也称为外部联系人。这些联系人是供应商、客户和业务合作伙伴。使用 PowerShell 脚本将简化从 CSV 文件导入数据的过程。在本文中,您将了解如何使用 PowerShell 将联系人批量导入到 Microsoft 365。

在 Microsoft 365 中创建邮件联系人所需的属性

要使用 PowerShell 在 Microsoft 365 中创建邮件联系人,您需要最少的必需属性:

  • -显示名称
  • -别名
  • -外部电子邮件地址

注意:您可以看到带有星号的必填字段,如下面的屏幕截图所示。

[玩转系统] 使用 PowerShell 将联系人批量导入到 Microsoft 365

连接到 Exchange Online PowerShell

为了能够运行 PowerShell 命令,您必须连接到 Exchange Online PowerShell。以管理员身份打开 Windows PowerShell,运行以下 cmdlet,然后使用管理员凭据登录。

Connect-ExchangeOnline

将联系人导入到 Microsoft 365 PowerShell 脚本

您将使用两个脚本来添加更新 Microsoft 365 联系人。

Add-M365Contacts.ps1 PowerShell 脚本将遍历 CSV 文件并在 Microsoft 365 租户中创建联系人及其信息:

  1. 姓名
  2. 显示名称
  3. 别名
  4. 外部电子邮件地址

Update-M365Contacts.ps1 PowerShell 脚本将遍历 CSV 文件并使用附加信息更新租户中的 Microsoft 365 联系人:

  1. 街道地址
  2. 州或省
  3. 城市
  4. 邮政编码
  5. 电话
  6. 手机
  7. 家庭电话
  8. 公司
  9. 部门
  10. 国家或地区
  11. 传真
  12. 缩写
  13. 标题
  14. 笔记
  15. 办公室
  16. 经理
  17. 隐藏(HiddenFromAddressListsEnabled)

注意:假设您在 Microsoft 365 中已有联系人,并且想要使用新值更新它们,则只需使用 Update-M365Contacts.ps1 PowerShell 脚本。

如何使用 PowerShell 将联系人导入到 Microsoft 365

让我们完成在 Microsoft 365 中从 CSV 文件创建批量联系人的步骤。

第 1 步:下载 CSV 模板

如果没有 CSV 文件,您将无法使用脚本在 Exchange Online - Microsoft 365 中添加和更新联系人。

下载 CSV 文件 M365Contacts.csv 并将其放置在 C:\Temp 文件夹中。如果您没有 Temp 文件夹,请创建一个。

[玩转系统] 使用 PowerShell 将联系人批量导入到 Microsoft 365

打开 CSV 文件并填写您要导入的联系方式。

[玩转系统] 使用 PowerShell 将联系人批量导入到 Microsoft 365

步骤 2:检查 CSV 文件是否导入

在运行脚本之前,请务必验证您的 CSV 文件是否可读。一个很好的方法是以管理员身份启动 PowerShell 并运行 Import-Csv cmdlet。

Import-Csv "C:\Temp\M365Contacts.csv" | Format-Table

输出显示为列。

FirstName LastName DisplayName   Alias         ExternalEmailAddress    StreetAddress    StateorProvince City    PostalCode WorkPhone
--------- -------- -----------   -----         --------------------    -------------    --------------- ----    ---------- ---------
Darren    Parker   Darren Parker Darren.Parker [email protected]   1234 23rd Ave    Florida         Bartow  33830
Allie     Bellew   Allie Bellew  Allie.Bellew  [email protected] 4321 27th Ave NW Utah            Manti   84642      555-5543
Cindy     White    Cindy White   Cindy.White   [email protected]        4321 Main St.    Colorado        Denver  80014      555-5555
Chris     Norred   Chris Norred  Chris.Norred  [email protected]     PO Box 1234      Colorado        Greeley 80543      555-5525

您可以使用 Out-GridView cmdlet 将所有内容显示在单独的窗口中。

Import-Csv "C:\Temp\M365Contacts.csv" | Out-GridView

这就是它的样子。

[玩转系统] 使用 PowerShell 将联系人批量导入到 Microsoft 365

现在包含所有联系人的 CSV 文件已正确设置,让我们看看下一步。

步骤 3:运行 Add-M365Contacts PowerShell 脚本

下载 Add-M365Contacts.ps1 PowerShell 脚本并将其放置在 C:\scripts 文件夹中。如果您没有脚本文件夹,请创建一个。

确保文件未被阻止,以防止运行脚本时出现错误。请阅读文章运行 PowerShell 脚本时出现未数字签名错误来了解更多信息。

$csvFilePath = "C:\temp\M365Contacts.csv"

try {
    $Contacts = Import-Csv $csvFilePath

    foreach ($Contact in $Contacts) {
        try {
            if ((Get-MailContact -Filter "DisplayName -eq '$($Contact.DisplayName)' -or ExternalEmailAddress -eq '$($Contact.ExternalEmailAddress)'" -ErrorAction SilentlyContinue) -ne $null) {
                Write-Host "Contact $($Contact.ExternalEmailAddress) already exists" -ForegroundColor Yellow
            }
            else {
                $null = New-MailContact `
                    -Name $Contact.DisplayName `
                    -FirstName $Contact.FirstName `
                    -LastName $Contact.LastName `
                    -DisplayName $Contact.DisplayName `
                    -Alias $Contact.Alias `
                    -ExternalEmailAddress $Contact.ExternalEmailAddress `
                    #-WhatIf
                    Write-Host "Contact $($Contact.ExternalEmailAddress) added successfully" -ForegroundColor Green
            }
        }
        catch {
            Write-Host "Failed to add contact $($Contact.ExternalEmailAddress). Error: $_" -ForegroundColor Red
        }
    }
}
catch {
    Write-Host "Failed to import CSV file. Error: $_" -ForegroundColor Red
}

运行脚本以在 Microsoft 365 中创建联系人。

C:\Scripts\.\Add-M365Contacts.ps1

输出将显示使用消息创建联系人是否成功。

Contact [email protected] added successfully
Contact [email protected] added successfully
Contact [email protected] added successfully
Contact [email protected] already exists

步骤 4:运行 Update-M365Contacts PowerShell 脚本

下载 Update-M365Contacts.ps1 PowerShell 脚本并将其放置在 C:\scripts 文件夹中。如果您没有脚本文件夹,请创建一个。

确保文件未被阻止,以防止运行脚本时出现错误。请阅读文章运行 PowerShell 脚本时出现未数字签名错误来了解更多信息。

$csvFilePath = "C:\temp\M365Contacts.csv"

try {
    $Contacts = Import-Csv $csvFilePath

    foreach ($Contact in $Contacts) {
        try {
            $existingContact = Get-MailContact -Filter "DisplayName -eq '$($Contact.DisplayName)' -or ExternalEmailAddress -eq '$($Contact.ExternalEmailAddress)'" -ErrorAction SilentlyContinue

            if ($existingContact.Count -eq 0) {
                Write-Host "Contact $($Contact.ExternalEmailAddress) does not exists" -ForegroundColor Red
            }
            else {
                # Set contact information
                Set-Contact `
                    -Identity $Contact.DisplayName `
                    -StreetAddress $Contact.StreetAddress `
                    -StateOrProvince $Contact.StateorProvince `
                    -City $Contact.City `
                    -PostalCode $Contact.PostalCode `
                    -Phone $Contact.WorkPhone `
                    -MobilePhone $Contact.MobilePhone  `
                    -HomePhone $Contact.HomePhone `
                    -Company $Contact.Company `
                    -Department $Contact.Department `
                    -CountryOrRegion $Contact.CountryOrRegion `
                    -Fax $Contact.Fax `
                    -Initials $Contact.Initials `
                    -Title $Contact.Title `
                    -Notes $Contact.Notes `
                    -Office $Contact.Office `
                    -Manager $Contact.Manager `
                    -ErrorAction SilentlyContinue

                $HiddenFromAddressListsEnabled = [System.Convert]::ToBoolean($Contact.Hidden)
                if ($HiddenFromAddressListsEnabled -ne (Get-MailContact -Identity $Contact.DisplayName).HiddenFromAddressListsEnabled) {
                    Set-MailContact `
                        -Identity $Contact.DisplayName `
                        -HiddenFromAddressListsEnabled $HiddenFromAddressListsEnabled
                }
                Write-Host "Contact $($Contact.ExternalEmailAddress) updated successfully" -ForegroundColor Green
            }
        }
        catch {
            Write-Host "Failed to update contact $($Contact.ExternalEmailAddress). Error: $_" -ForegroundColor Red
        }
    }
}
catch {
    Write-Host "Failed to import CSV file. Error: $_" -ForegroundColor Red
}

运行以下脚本将所有联系人信息导入到 Microsoft 365 中的联系人中。

 C:\Scripts\.\Update-M365Contacts.ps1

输出将显示通过消息更新联系人是否成功或失败。

Contact [email protected] updated successfully
Contact [email protected] updated successfully
Contact [email protected] updated successfully
Contact [email protected] updated successfully

步骤 5:验证 Microsoft 365 中的联系人

检查外部联系人是否出现在 Exchange Online 中非常重要。有两种方法可以做到这一点:使用 PowerShell 和在 Exchange 管理中心。

运行 Get-MailContact cmdlet 以查找租户中的新联系人。

Get-MailContact

出现输出。

Name          Alias         RecipientType
----          -----         -------------
Allie Bellew  Allie.Bellew  MailContact
Chris Norred  Chris.Norred  MailContact
Cindy White   Cindy.White   MailContact
Darren Parker Darren.Parker MailContact

另一种方法是登录 Microsoft 365 管理中心并验证新创建的联系人。

  1. 点击用户 > 联系人

[玩转系统] 使用 PowerShell 将联系人批量导入到 Microsoft 365

或者登录 Exchange 管理中心以获取更多联系详细信息。

  1. 点击收件人 > 联系人

[玩转系统] 使用 PowerShell 将联系人批量导入到 Microsoft 365

就是这样!

这是否有助于您使用 PowerShell 从 CSV 文件在 Microsoft 365 中创建外部联系人?

了解更多:如何将 Google 联系人导入 Outlook »

结论

您了解了如何使用 PowerShell 将联系人导入到 Microsoft 365。首先,准备 CSV 文件并确保填写所有信息。接下来,您需要脚本 Add-M365Contacts.ps1 来创建新的外部联系人,并需要 Update-M365Contacts 来更新 Exchange Online 中的新联系人。更新脚本也适用于更新现有联系人。最后一部分是检查联系人是否已成功创建。

您喜欢这篇文章吗?您可能还喜欢配置基于证书的身份验证来运行自动化 PowerShell 脚本。不要忘记关注我们并分享这篇文章。

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

取消回复欢迎 发表评论:

关灯