SQL Server がクラスター管理者を通じてクラスターサーバーに接続すると、"無効なクラス文字列" というエラーが表示される


現象


SQL Server がクラスターアドミニストレーターを介してクラスターサーバーに接続すると、次のエラーメッセージが表示されることがあります。 たとえば、Microsoft Search サービスが利用できない場合、次のエラーメッセージが表示されることがあります。
"Microsoft Search Service インスタンス" リソースの種類のプロパティを読み取ろうとしたときにエラーが発生しました。無効なクラスの StringError Id-2147221005 (()
または
' Microsoft Search Service インスタンス ' リソースの種類のプロパティを読み取ろうとしたときにエラーが発生しました: 指定したノードはこの型のリソースをサポートしていません。 バージョンの不整合が原因であるか、このノードにリソース DLL が存在しないことが原因である可能性があります。
エラーメッセージに表示されるリソースの種類は、特定の環境によって異なる場合があります。

原因


このエラーメッセージは、次のいずれかの理由により発生します (DLL またはリソースは環境によって異なる場合があります)。
  • Microsoft Search Service リソース DLL ファイル Gathercl は、%systemroot%\Winnt\Cluster フォルダーに存在しません。
  • ログインしているアカウントには、フォルダーにアクセスするための十分な権限がありません。

回避策


この問題を回避するには、以下の手順を実行します。
  • [原因] セクションの最初の箇条書き項目に表示されるエラーメッセージの例については、%systemroot%\Winnt\Cluster フォルダーに Gathercl が存在することを確認してください。 Gathercl が存在しない場合は、SQL Server CD から Gathercl をコピーして、%systemroot%\Winnt\Cluster フォルダーに置きます。 Regsvr32 を使って DLL を登録します。 Service Pack がインストールされている場合は、Service Pack ファイルから Gathercl ファイルをコピーします。
  • クラスターへのログインに使用するアカウントが、%systemroot%\winnt\Cluster フォルダーとそのフォルダー内のすべてのファイルに対してフルコントロールを持つことを確認します。