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

Exchange 2010 PowerShell批量设置自动回复脚本报错求助

问题排查与修正方案

我来帮你梳理下这个PowerShell脚本里的问题,主要有几个关键错误需要修正,咱们一步步来:

1. Import-Csv的Header参数用错了

你的CSV文件本身已经自带Users和Email表头了,加上-Header "Users", "Email"会让PowerShell把CSV的第一行(也就是原本的表头)当成第一条用户数据,真正的用户信息反而从第二行开始处理。这就是为什么会提示“找不到域对象‘Users’”——它把表头文本当成了用户名去查找了!

修正方法: 直接删掉-Header参数,正常导入CSV即可:

$content = Import-Csv "C:\Scripts\File\files.csv"

2. ForEach循环的语法错误

你写的ForEach ($_.Users in $content)是错误的用法,$_是PowerShell管道里的自动变量,不能在ForEach循环的变量定义里这么用。咱们应该自定义一个循环变量,比如$user,用来遍历每一条CSV记录。

修正方法: 改成正确的循环结构:

ForEach ($user in $content) {
    # 后面的代码都用$user来调用属性,比如$user.Users、$user.Email
}

3. 变量插值与笔误问题

在双引号字符串里直接写$user.Users的话,PowerShell有时候没法正确解析对象属性,得用子表达式$()把属性包裹起来,确保变量能正确展开。另外你在ExternalMessage里把Users拼写成了Ysers,这也是个小笔误,得改过来。

修正方法: 修正消息内容里的变量和笔误:

-InternalMessage "$($user.Users) no longer works here, please reach them at $($user.Email)"
-ExternalMessage "$($user.Users) no longer works here, please reach them at $($user.Email)"

完整修正后的脚本

把所有修正整合起来,最终能用的脚本是这样的:

$content = Import-Csv "C:\Scripts\File\files.csv"
ForEach ($user in $content) {
    Set-MailboxAutoReplyConfiguration $user.Users -AutoReplyState enabled -ExternalAudience all -InternalMessage "$($user.Users) no longer works here, please reach them at $($user.Email)" -ExternalMessage "$($user.Users) no longer works here, please reach them at $($user.Email)"
}
Exit

额外提醒

  • 要确保CSV里的Users列内容是Exchange能识别的邮箱标识,比如别名、用户主体名称(UPN)或者邮箱地址,不然还是会找不到对象哦。
  • 运行脚本的账号得有修改邮箱自动回复配置的权限,比如Exchange的收件人管理员角色。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:56:18