You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell新手求助:从Get-MgUserContact结果提取邮箱与办公电话

提取联系人的邮箱地址和办公电话

你现在的代码已经能获取到联系人集合,但需要调整来精准提取目标字段,以下是可行方案:

修正代码中的变量错误

你循环里的$FolderID = $contacts.parentFolderId用了复数的$contacts(整个联系人集合),应该改成当前循环的单个联系人对象$contact,否则会拿到所有联系人的parentFolderId数组。

提取目标字段的具体方法

1. 提取邮箱地址(emailAddresses.address)

EmailAddresses是包含多个邮箱对象的数组,你可以直接访问它的Address属性,PowerShell会自动展开数组中的所有地址:

$contact.EmailAddresses.Address

如果只需要第一个邮箱地址,用索引定位:

$contact.EmailAddresses[0].Address

2. 提取办公电话(businessPhones)

BusinessPhones本身就是字符串数组,直接访问即可拿到所有办公电话:

$contact.BusinessPhones

同样,取第一个电话用索引:

$contact.BusinessPhones[0]

完整示例代码

把提取的字段整理成自定义对象,方便查看和后续处理:

$mailbox="SomeUser@myCompany.com"
$Contacts = Get-MgUserContact -UserId $mailbox

foreach($contact in $Contacts){
    # 提取单个联系人的目标字段
    $contactInfo = [PSCustomObject]@{
        ContactID       = $contact.Id
        ParentFolderID  = $contact.parentFolderId
        EmailAddresses  = $contact.EmailAddresses.Address -join ';' # 多个邮箱用分号分隔
        BusinessPhones  = $contact.BusinessPhones -join ';' # 多个电话用分号分隔
    }
    # 输出当前联系人的信息
    $contactInfo
}

执行这段代码后,会得到类似这样的结构化输出:

ContactID       : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ParentFolderID  : yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
EmailAddresses  : Firstname.Lastname@myCompany.com
BusinessPhones  : +1 002 224 512

内容的提问来源于stack exchange,提问作者Bobo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 22:21:00