WSFC 継続的可用性 (CA) が有効な共有フォルダーから Office ファイルが開けない

Last Update:

こんにちは、Office サポート チームの中村です。

今回の記事では、Windows Server Failover Cluster (WSFC) 構成のファイル サーバー上に作成した共有フォルダーで、継続的可用性 (Continuous Availability
(CA)) 設定を有効にすると、このフォルダー配下の Office ファイルを開くときに時間がかかる、という動作について説明します。なお、このときに要する時間は数十分となる場合があるため、ユーザーが開き終わるまで待機することなく「Office ファイルを開くことができず、Office アプリの応答がなくなる」といった現象として報告されることが想定されます。

1. 発生条件

以下をすべて満たす場合に発生します。

  • Office デスクトップ アプリ バージョン 1812 以降

  • WSFC 構成のファイル サーバーで、共有フォルダーの継続的可用性 (CA) を有効にしている


2. 原因

WSFC 構成の継続的可用性 (CA) は、一般的に可用性が重要なスケールアウト ファイル サーバーなどの構成で利用され、ファイルへのアクセス中にフェイル オーバーが発生したときにも、フェイル オーバー後にそのままアクセスを継続することを実現します。
本機能の詳細は、以下の公開情報をご参照ください。

Windows Server 2012 Continuous Availability File Server feature
https://docs.microsoft.com/en-us/archive/blogs/davguents_blog/windows-server-2012-continuous-availability-file-server-feature

この仕組みの実現のため、継続的可用性が有効な共有フォルダーが検出されると、SMB クライアントはそのファイル サーバーへのアクセスが失敗した場合も、しばらくの間リトライを繰り返します。このリトライによって、フェイル オーバー後に自動的に再接続され、継続アクセスが可能となります。

一方で、先述の発生条件に記載したバージョン以降の Office アプリケーションでは、セキュリティ脆弱性への対応のため、ファイルが格納されているネットワーク フォルダー パスを Unicode 正規化してアクセスする処理を追加しました。
例えば、「share」という全角英字を Unicode 正規化すると、半角英字「share」となります。したがって、「\\server\share\test.xlsx」という全角英字フォルダー内のファイルを開くときに、「\\server\share」 (半角英字) へのアクセスが発生することになります。

半角英字の「share」フォルダーが存在せず、そのようなフォルダーは存在しない旨のエラーが返されても以後の処理は正常に動作しますが、継続的可用性が有効な場合は、存在しないことによるエラーであってもこのエラーがすぐに Office に返らず、リトライが繰り返されます。
この結果、リトライ オーバーまで Office は待機し続け、ファイルを開くまでに長い時間を要します。

Windows OS の継続的可用性によるリトライ、Office アプリケーションのファイル オープン時の Unicode 正規化ともに、想定された仕組みであり、本動作は現在の製品動作上の制限事項です。

3. 回避策

以下のいずれかの方法による回避をご検討ください。

  1. 共有フォルダーの名前に Unicode 正規化で別の文字となる文字を使用しない

  2. 共有フォルダーをネットワーク ドライブに割り当てて使用する
    (この場合、Office が Unicode 正規化してアクセスするのはネットワーク ドライブを用いたパスとなるため、現象を回避できます)

  3. 共有フォルダーの継続的可用性を無効にする


今回の投稿は以上です。

本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。