Samba4.3 ベースのActive Directory (AD) 環境で運用をし始めてから3年程度が経ちますが、便利な半面ときどきよくわからない問題に直面することがあります。その時いつもふと頭を過るのは、

「これは Samba 固有の問題なのか、Active Directory 共通の問題なのか」

ということです。今回の問題も色々と調べましたが、ざっくりといえば AD (というよりもWindows) に共通の問題みたいではあるみたいですが、果たして・・

発端

とある営業所の社員が、PCを使用している時に、作業中に突然パソコンがフリーズするとのこと。
症状としては、

  • 突然全ての動作が止まり、どのウィンドウも反応しなくなってしまう。
  • 止まるタイミングは不明、とのこと。

利用している環境は、

  • OSは、Windows7 Pro7 32bit版
  • Samba4.3 ベースの Active Directory (AD) 環境にドメインメンバとして参加している
  • グループポリシー で、フォルダリダイレクトを使用している。
  • ユーザーは、いわゆる Domain Users に所属している一般ユーザ。

イベントログの確認

相手のPCにリモートで接続して見てみると、Explore.exeが応答しなくなっているように見えるので、Explore.exeの再起動を試みると、デスクトップのアイコンやタスクバーが全て消えてしまいます。

幸い、Ctrl+Alt+Delキーで反応はしてくれるので、一旦ログオフさせて、再度ログオンすると、ひとまず問題なくログオンができたので、イベントビューワを開いてイベントログをみてみると次のようなログが。。

ログの名前:        Application
ソース:            Application Hang
イベント ID:       1002
タスクのカテゴリ:  (101)
レベル:            エラー
キーワード:        クラシック
ユーザー:          N/A
コンピューター:    SOMEHOST.mydomain.local
説明:
プログラム RExp.exe バージョン 6.3.7.1121 は Windows との対話を停止し、終了しました。問題に関する詳細な情報があるかどうかを確認するには、アクション センター コントロール パネルで、問題の履歴をクリックしてください。
アプリケーション パス: C:\Program Files\RICOH\Ridoc Document\RExp.exe

[イベントID: 1002] のエラー。このアプリケーション1 以外にも、エクスプローラ(explore.exe)でも同様のイベントIDでハングアップが起きている模様。

共通しているのは、そのハングアップのエラーログの直前に、Windows Error Reporting として、

ログの名前:         Application
ソース:             Windows Error Reporting
イベント ID:        1001
タスクのカテゴリ:   なし
レベル:             情報
キーワード:         クラシック
ユーザー:           N/A
コンピューター:     SOMEHOST.mydomain.local
説明:
障害バケット 50、種類 5
イベント名: AppHangXProcB1
応答: 使用不可
Cab ID: 0

問題の署名:
P1: RExp.exe
P2: 6.3.7.1121
P3: 4743d451
P4: ffc5
P5: 524336
P6: IMJPDSVR.EXE
P7: 10.1.7601.23572
P8:
P9:
P10:

添付ファイル:
C:\Users\hoge-user\AppData\Local\Temp\WER4FD7.tmp.appcompat.txt
C:\Users\hoge-user\AppData\Local\Temp\WER55B2.tmp.WERInternalMetadata.xml

これらのファイルは次の場所にある可能性があります:
C:\Users\hoge-user\AppData\Local\Microsoft\Windows\WER\ReportArchive\AppHang_RExp.exe_4cb9d15981455dca3412b68fc8895f73d132c7_09b459a7

分析記号:
解決策を再確認中: 0
レポート ID: 688d14db-502e-11e9-b5df-c03fd5a0a129
レポートの状態: 0

のような [イベントID: 1001] のログを吐いて、レポートファイルが作成されている。

IMJPDSVR.EXE は何者?

他のレポートファイルも同じような感じで、ハングアップしたアプリケーションはそれぞれ違うものであるが、いずれにしても、レポートファイルを見ているとIMJPDSVR.EXEというファイルの応答を待っている途中で停止している模様。

そこで、いろいろググっていくと、次のような情報が。

フォルダリダイレクト環境にて Microsoft IME を利用するアプリケーションが応答しなくなる - Microsoft サポート

原因

フォルダリダイレクト環境では IME10 が利用する辞書ファイル保存先である %USERPROFILE%\AppData\Roaming\Microsoft\IMJP10 フォルダが存在しない場合があります。この場合、imjpdsrv.exe は辞書ファイル作成処理でループすることで CPU 使用率を消費してしまいます。

回避策

ログオン前に下記リダイレクト先の IMJP10 フォルダを作成します。必要に応じてログオンスクリプトにて下記フォルダ作成処理を追加してください。

[フォルダ名]
\\<ComputerName>\<ShareName>\<UserName>\AppData\Roaming\Microsoft\IMJP10

[フォルダ作成コマンド例]
md %APPDATA%\Microsoft\IMJP10

要するに、IMEのプログラムが辞書ファイルを作成しようとして、無限ループに陥るって言うことみたいですね。

・・ってなんなん、それ?バグとちゃうの?

と思わず一人ツッコミ。

どうも、これは日本語切り替えキーを押した段階か、別のウィンドウにフォーカスが入って、自動的にIMEが有効になった時点で止まってしまった (ように見える?) ものと思われます。

%APPDATA%は、概ね\\server\profiles\username\AppDataに展開されるので、そこにIMJP10フォルダを作成します。ローカルのC:\\Users\user\AppData\Roaming\Microsoft\IMJP10へは自動的に同期されるようなので、何もせずそのままに。

問題解決・・と思ったら

フォルダを追加して、これだ大丈夫かな?と思ったのもつかの間、やはり先程同様フリーズしてしまうと連絡が・・

再度、サーバーのプロファイルを開いてみると、そこには、IMJP14というフォルダが。(IMJP10からリネームされた?のか、なくなっていました)
ローカルは、IMJP10のままなので、サーバ上のIMJP14フォルダをコピーして、ローカルに貼ってみて、対処。

今度はしばらくは調子よく動作していたものの、再々度、ハングアップ。
ここで、お得意のカンニングをすることに。他のユーザーの Profiles 以下のファイルをチェックしてみると、ほぼすべてのユーザーにフォルダ IMJP10 があるので、ユーザーのサーバ上のプロファイルに、再度IMJP10を追加してみた。

・・と、ここまでの作業で、なんとか問題なく動作しているみたいです。

まとめ

数年にも同じような状況で対処したことがあり、もしかすると・・と思ったらビンゴでした。

共通するのは、ログオン時にIMEが利用できない状況が発生し、それに対処した後からこの問題が発生するように思えますが、原因はハッキリとわかりません。


  1. Ricoh のドキュメント管理ソフトウェア 

0件のコメント

コメントを残す

メールアドレスが公開されることはありません。