我尝试执行的命令是
[PS] C:\Windows\system32>Set-ClientAccessServer -Identity CCSEMAIL2010 -AutoDiscoverServiceInternalURI https://autodiscover.local.company.net/Autodiscover/Autodiscover.xml
例外情况是
您必须为此属性提供一个值。
- CategoryInfo:未指定:(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
引发相同的异常。
答案1
运行时你会看到什么:
get-clientaccessserver | fl name, fqdn
LE:您还可以确保您拥有所需的权限吗?
Get-ManagementRole -Cmdlet set-clientaccessserver
Get-ManagementRoleAssignment -Role "exchange servers" -GetEffectiveUsers | fl effectiveuser*
如果您除了使用 cmdlet 的“Exchange 服务器”之外还有更多角色,那么您也应该检查这些角色。
答案2
这就是我解决问题的方法。问题的根本原因是 AD 中的损坏。一旦清除损坏,通过 powershell 发出的所有设置命令都会按预期工作。
然后我打开了 Exchange 管理控制台来验证我在 powershell 中看到的内容
记下数据库的名称后,我登录到域控制器并启动 ADSIEdit 工具。我仔细查看树以查找邮箱数据库。我看到的情况有点奇怪。邮箱数据库记录比我预期的要多。
我进一步调查了邮箱数据库记录,发现两条数据库记录表明它们与单个服务器相关联。我从之前的研究中知道这不是预期的,也可能不正确。
我决定冒险一试,删除了通过 powershell 和 EMC 请求邮箱数据库时未列出的数据库。
问题解决了。我的所有 powershell cmdlet 现在都可以正常工作了。