我要执行的命令是
[PS] C:\Windows\system32>Set-ClientAccessServer -Identity CCSEMAIL2010 -AutoDiscoverServiceInternalURI https://autodiscover.local.company.net/Autodiscover/Autodiscover.xml
例外是
您必须为此属性提供一个值。
- CategoryInfo : NotSpecified: (0:Int32) [Set-ClientAccessServer], DataValidationException
- fullyQualifiedErrorId:4DA56CC3,Microsoft.Exchange.Management.SystemConfigurationTasks.SetClientAccessServer
- PSComputerName : ccsemail2010.local.company.net
我不明白没有指定什么以及为什么错误中引用了 Int32。我已验证服务器名称与我输入的相同。我使用 adsiedit.msc 来查找 AD 中的记录,并验证我用来运行 cmdlet 的帐户是否有权修改它。我为 cmdlet 查看的所有语法都只有 -Identity 所需的属性。如果我跑
[PS] C:\Windows\system32>Set-ClientAccessServer -Identity CCSEMAIL2010
抛出相同的异常。
运行时看到什么:
LE:你能确保你拥有所需的权限吗?
如果您在 cmdlet 中除了“Exchange Servers”之外还有更多角色,您也应该检查这些角色。
这就是我解决问题的方法。问题的根本原因最终是 AD 中的损坏。清除损坏后,通过 powershell 发出的所有设置命令都按预期工作。
首先,我通过 powershell 列出了邮箱数据库
然后我打开 Exchange 管理控制台来验证我在 powershell 中看到的内容
注意数据库的名称,然后我登录到域控制器并启动 ADSIEdit 工具。我在树中挖掘以找到邮箱数据库。我看到的有点奇怪。邮箱数据库记录比我预期的要多。
我进一步调查了邮箱数据库记录,发现两条数据库记录表明它们与单个服务器相关联。从我之前的研究中我知道这不是预期的,也可能是不正确的。
我决定冒险并删除了在通过 powershell 和 EMC 请求邮箱数据库时未列出的数据库。
那解决了它。我所有的 powershell cmdlet 现在都可以按预期工作