実行しようとしているコマンドは
[PS] C:\Windows\system32>Set-ClientAccessServer -Identity CCSEMAIL2010 -AutoDiscoverServiceInternalURI https://autodiscover.local.company.net/Autodiscover/Autodiscover.xml
例外は
このプロパティに値を指定する必要があります。
- カテゴリ情報: 指定されていません: (0:Int32) [Set-ClientAccessServer]、DataValidationException
- 完全修飾エラー ID: 4DA56CC3、Microsoft.Exchange.Management.SystemConfigurationTasks.SetClientAccessServer
- PS コンピュータ名: ccsemail2010.local.company.net
指定されていない内容と、エラーに Int32 への参照が含まれている理由がわかりません。サーバー名が入力したとおりであることを確認しました。adsiedit.msc を使用して AD のレコードを探し、コマンドレットを実行するために使用しているアカウントにレコードを変更する権限があることを確認しました。コマンドレットの構文を確認したところ、必要な -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*
コマンドレットで「Exchange Servers」以外のロールがある場合は、それらも確認する必要があります。
答え2
これが私が問題を解決した方法です。問題の根本的な原因は、AD の破損でした。破損がクリーンアップされると、PowerShell 経由で発行されたすべての set コマンドが期待どおりに機能しました。
まず、PowerShellでメールボックスデータベースをリストしました
次に、Exchange管理コンソールを開いて、PowerShellで見たものを確認しました。
データベースの名前を書き留めて、ドメイン コントローラにログインし、ADSIEdit ツールを起動しました。ツリーを掘り下げてメールボックス データベースを探しました。すると、少し奇妙なことが起こりました。予想していたよりも多くのメールボックス データベース レコードがあったのです。
メールボックス データベース レコードをさらに調査したところ、単一のサーバーに関連付けられていることを示す 2 つのデータベース レコードが見つかりました。以前の調査から、これは予想外であり、正しくない可能性があることはわかっていました。
私はリスクを冒して、PowerShell と EMC 経由でメールボックス データベースを要求したときにリストされなかったデータベースを削除することにしました。
これで問題は解決しました。PowerShellコマンドレットはすべて期待通りに動作するようになりました。