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

Office365合规PowerShell:Get-ComplianceSearch遍历无法获取ExchangeLocation值

问题:批量查询合规搜索时ExchangeLocation属性为空,单个查询正常

场景描述

使用Office 365合规中心的Get-ComplianceSearch模块,查询指定用户创建的所有合规搜索,需获取搜索名称(Name)及对应的ExchangeLocation(目标邮箱)。

单独查询单个搜索时,以下代码可正常返回$search.Name和$search.ExchangeLocation的值:

$search = Get-ComplianceSearch -Identity "nameofsearchgoeshere"

但自定义的遍历函数调用时,$searchName能正常输出,$ExchangeLocation始终为空。函数代码如下:

function Get-ComplianceSearches {
    param(
        [Parameter(Mandatory = $true)][string]$Individual
    )
    $complianceSearches = Get-ComplianceSearch -ResultSize Unlimited
    $individualSearches = $complianceSearches | Where-Object { $_.CreatedBy -eq $Individual }

    foreach ($search in $individualSearches) {
        $searchName = $search.Name
        $ExchangeLocation = $search.ExchangeLocation

        Write-Host "Search Name: $searchName"
        Write-Host "Exchange Location: $ExchangeLocation"
        Write-Host "--------------------------"
    }
}

原因分析

Get-ComplianceSearch在不带-Identity参数批量查询时,默认仅返回基础属性集合,ExchangeLocation属于需要单独请求才会加载的扩展属性。单个查询时指定-Identity会触发完整对象的加载,因此能获取到该属性值;而批量获取时未加载该属性,所以返回为空。

解决方案

遍历每个搜索时,通过-Identity重新获取完整的合规搜索对象,即可拿到ExchangeLocation属性。修改后的函数代码如下:

function Get-ComplianceSearches {
    param(
        [Parameter(Mandatory = $true)][string]$Individual
    )
    $complianceSearches = Get-ComplianceSearch -ResultSize Unlimited
    $individualSearches = $complianceSearches | Where-Object { $_.CreatedBy -eq $Individual }

    foreach ($search in $individualSearches) {
        # 获取完整的搜索对象以加载所有属性
        $fullSearchObject = Get-ComplianceSearch -Identity $search.Name
        $searchName = $fullSearchObject.Name
        $ExchangeLocation = $fullSearchObject.ExchangeLocation

        Write-Host "Search Name: $searchName"
        Write-Host "Exchange Location: $ExchangeLocation"
        Write-Host "--------------------------"
    }
}

补充说明

如果担心多次调用API的性能影响,可尝试检查是否有参数能让批量查询返回完整属性,但根据Exchange Online PowerShell模块的特性,Get-ComplianceSearch批量查询默认不返回扩展属性,通过-Identity重新获取单个对象是最可靠的解决方式。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 15:03:23