Set-ClientAccessServer コマンドレットが DataValidationException をスローするのはなぜですか?

Set-ClientAccessServer コマンドレットが DataValidationException をスローするのはなぜですか?

実行しようとしているコマンドは

[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コマンドレットはすべて期待通りに動作するようになりました。

関連情報