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

Exchange 2019 CU11/2016 CU22升级后审计日志脚本报错求解

问题根因

Exchange Server 2019 CU11和2016 CU22版本调整了Search-AdminAuditLog cmdlet的输出对象类型,你自定义的New-AuditLogReport函数中对输入参数强指定了旧版本的Microsoft.Exchange.Management.SystemConfigurationTasks.AdminAuditLogEvent类型,新版本输出的对象与该类型不匹配,因此触发管道参数绑定失败的报错。

修复方案

修改New-AuditLogReport函数的输入参数定义,移除或调整类型限制即可:

  1. 找到函数中的参数定义段:
[Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)]
[Microsoft.Exchange.Management.SystemConfigurationTasks.AdminAuditLogEvent]
$AuditLogEntry  
  1. 替换为以下两种写法任意一种即可:
  • 通用PSObject类型适配(兼容性最强)
[Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)]
[PSObject]
$AuditLogEntry  
  • 完全移除类型声明
[Parameter(Position=0, Mandatory=$true, ValueFromPipeline=$true)]
$AuditLogEntry  
可选补充

如果需要保留强类型校验,可以先执行以下命令查询当前Exchange版本输出的审计日志对象实际类型,再将上述参数的类型声明替换为查询结果即可:

Search-AdminAuditLog -ResultSize 1 | Get-Member | Select-Object TypeName -First 1

另外建议在函数process块的开头添加$cmdletparameters = @(),避免变量残留导致的参数值拼接错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:45:06