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

O365邮箱转发脚本生效但报Identity参数空值错误求助

问题排查与解决方案

1. 错误根源

这个错误是因为Set-Mailbox命令的Identity参数传入了空值——说白了就是你的CSV文件里存在Main_email列内容为空的行,或者CSV格式有问题(比如多余空行、列名拼写错误),导致脚本尝试给一个不存在的空邮箱执行转发配置,触发了系统报错。

2. 解决步骤

第一步:检查并清理CSV文件

  • 打开你的CSV文件,逐行检查Main_email列,删掉所有空行或者Main_email为空的行。
  • 确认CSV的列名是准确的Main_email和Lead_email,别出现大小写不一致、多空格这类低级错误。

第二步:修改脚本,过滤无效数据

在处理CSV前先过滤掉Main_email为空的行,避免无效执行。修改后的示例脚本如下:

# 导入CSV文件
$mailboxes = Import-Csv -Path "你的CSV文件路径.csv"

# 只保留Main_email不为空的有效行
$validMailboxes = $mailboxes | Where-Object { $_.Main_email -ne "" -and $null -ne $_.Main_email }

# 遍历配置转发
foreach ($mailbox in $validMailboxes) {
    # 可根据需求调整DeliverToMailboxAndForward:$true保留原邮箱副本,$false只转发不保留
    Set-Mailbox -Identity $mailbox.Main_email -ForwardingSMTPAddress $mailbox.Lead_email -DeliverToMailboxAndForward $true
}

3. 脚本影响确认

  • 错误行是因为传入了空Identity,不会对任何邮箱产生修改,不用怕这些错误导致异常配置。
  • 正常执行的行只会给对应邮箱设置SMTP转发:如果设了DeliverToMailboxAndForward $true,原邮箱会留邮件副本同时转发;设为$false的话,邮件只会转发,原邮箱不留。
  • 可以用下面的命令验证单个邮箱的转发配置是否正确:
Get-Mailbox -Identity "要检查的邮箱地址" | Select-Object Name, ForwardingSMTPAddress, DeliverToMailboxAndForward

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 11:52:23