異常に遅かったTablacus Explorerの対策(備忘録)

##  直す前の状態
* 起動に５分くらいかかる
* 起動した後は普通に動く
* 設定を変えると５分くらいフリーズ
* 以前はちゃんと動いていたような気がする
* 遅くなる現象はWindows11、Windows10両方で発生
* 会社のパソコンで遅くなる、家のは遅くならない

## やったこと
* 会社のPCが遅くなったのでセキュリティ関係の何かが悪さがをしていると推測
* Windowsセキュリティ->ウイルスと脅威の防止->除外でTEの入っているフォルダ、EXEファイル、dll、jsファイルを指定

## 結果
* 起動速度がやや改善
* 5分が30秒くらいに
* 設定変更したの時のお休み時間も短縮。でも起動時間より長いような気がする
* もう使うのやめようかと思ったくらいだが、まあ何とか使えそう

## その他
 ソースからビルドして、デバッガで見てみると、メインループのDispatchMessage(&msg)のところで、例外スローが多発していた。スロー先はアプリではなくシステム側。これが遅延の原因。止まっているところはWinProcではなく、OS側のDLL読み込みやCSS、JSの処理で止まっている。Windowsセキュリティで除外しなければならないファイルは上記以外にもいろいろあるのかもしれない。Proxy関連の設定も臭い。

```C++:TE.cpp
	// Main message loop:
	while (g_bMessageLoop) {
		try {
			if (GetMessage(&msg, NULL, 0, 0) <= 0) {
				break;
			}
			if (MessageProc(&msg) == S_OK) {
				continue;
			}
			TranslateMessage(&msg);
			DispatchMessage(&msg);//ここで止まる
		} catch (...) {
			g_nException = 0;
#ifdef _DEBUG
			g_strException = L"MainMessageLoop";
#endif
		}
	}
```

問題がありそうなところのエラー出力の一部
```
onecore\vm\dv\storage\plan9\rdr\dll\util.cpp(99)\p9np.dll!00007FFCF352F0CC: 
(caller: 00007FFCF35293B0) LogHr(1) tid(6824) C0000034     Msg:
[瑎牃慥整楆敬☨敤楶散‬奓䍎剈乏婉ⱅ☠瑡牴扩瑵獥‬椦卯慴畴ⱳ渠汵灬牴‬䥆䕌䅟呔䥒啂䕔也剏䅍ⱌ⠠䥆䕌卟䅈䕒剟䅅⁄⁼䥆䕌卟䅈䕒坟䥒䕔簠䘠䱉彅䡓剁彅䕄䕌䕔Ⱙ䘠䱉彅偏久‬䥆䕌卟乙䡃佒低单䥟彏低䅎䕌呒‬畮汬瑰Ⱳ〠)] 

スレッド 0x6078 はコード 0 (0x0) で終了しました。
スレッド 0x3f3c はコード 0 (0x0) で終了しました。
スレッド 0x6b44 はコード 0 (0x0) で終了しました。
スレッド 0x85fc はコード 0 (0x0) で終了しました。
0x00007FFD1386536C で例外がスローされました (TEd64.exe 内): Microsoft C++ の例外: Js::JavascriptExceptionObject (メモリの場所 0x00000042C0B59300)。
'TEd64.exe' (Win32): 'C:\Windows\System32\TextShaping.dll' が読み込まれました。
スレッド 0x89ec はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Windows\System32\Windows.System.Launcher.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\msvcp110_win.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\Windows.StateRepositoryCore.dll' が読み込まれました。
スレッド 0x7e40 はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Windows\System32\edputil.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\thumbcache.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\policymanager.dll' が読み込まれました。
スレッド 0x821c はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Windows\System32\Windows.StateRepositoryPS.dll' が読み込まれました。
スレッド 0x2e44 はコード 0 (0x0) で終了しました。
onecore\com\combase\catalog\class.cxx(1732)\combase.dll!00007FFD145062DA: (caller: 00007FFD1454B19C) ReturnHr(12) tid(408c) 80070716 指定されたリソース名がイメージ ファイルに見つかりません。
onecore\com\combase\catalog\regcat.cxx(480)\combase.dll!00007FFD14505C9B: (caller: 00007FFD1454B19C) ReturnHr(13) tid(408c) 80070716 指定されたリソース名がイメージ ファイルに見つかりません。
onecore\com\combase\catalog\catalog.cxx(3409)\combase.dll!00007FFD1454BB92: (caller: 00007FFD1454BC92) ReturnHr(14) tid(408c) 80070716 指定されたリソース名がイメージ ファイルに見つかりません。
    Msg:[CLSID:{FBF23B40-E3F0-101B-8488-00AA003E56F8} Flags:0x8005 IID:{000001E1-0000-0000-C000-000000000046}] 
onecore\com\combase\catalog\catalog.cxx(1026)\combase.dll!00007FFD1454BD16: (caller: 00007FFD1452E7D0) ReturnHr(15) tid(408c) 80070716 指定されたリソース名がイメージ ファイルに見つかりません。
onecore\com\combase\inc\ComCatalogHelpers.hpp(60)\combase.dll!00007FFD145DA648: (caller: 00007FFD1452E5DC) ReturnHr(16) tid(408c) 80070716 指定されたリソース名がイメージ ファイルに見つかりません。
'TEd64.exe' (Win32): 'C:\Windows\System32\Windows.StateRepositoryClient.dll' が読み込まれました。
スレッド 0xc14 はコード 0 (0x0) で終了しました。
スレッド 0x2bc4 はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Windows\System32\dui70.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\duser.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\oleacc.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\atlthunk.dll' が読み込まれました。
スレッド 0x4bfc はコード 0 (0x0) で終了しました。
スレッド 0x7cb8 はコード 0 (0x0) で終了しました。
スレッド 0x5b10 はコード 0 (0x0) で終了しました。
スレッド 0x8ea4 はコード 0 (0x0) で終了しました。
スレッド 0xd54 はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Windows\System32\cbfsconnectNetRdr2017.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\setupapi.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\netapi32.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\p9np.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\drprov.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\ntlanman.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\davclnt.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\winsta.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\cscapi.dll' が読み込まれました。
onecore\vm\dv\storage\plan9\rdr\dll\util.cpp(99)\p9np.dll!00007FFCF352F0CC: (caller: 00007FFCF35293B0) LogHr(1) tid(3c64) C0000034     Msg:[瑎牃慥整楆敬☨敤楶散‬奓䍎剈乏婉ⱅ☠瑡牴扩瑵獥‬椦卯慴畴ⱳ渠汵灬牴‬䥆䕌䅟呔䥒啂䕔也剏䅍ⱌ⠠䥆䕌卟䅈䕒剟䅅⁄⁼䥆䕌卟䅈䕒坟䥒䕔簠䘠䱉彅䡓剁彅䕄䕌䕔Ⱙ䘠䱉彅偏久‬䥆䕌卟乙䡃佒低单䥟彏低䅎䕌呒‬畮汬瑰Ⱳ〠)] 
スレッド 0x3c64 はコード 0 (0x0) で終了しました。
スレッド 0x9934 はコード 0 (0x0) で終了しました。
スレッド 0x5340 はコード 0 (0x0) で終了しました。
スレッド 0x52bc はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Windows\System32\ExplorerFrame.dll' が読み込まれました。
スレッド 0x638c はコード 0 (0x0) で終了しました。
スレッド 0x87b8 はコード 0 (0x0) で終了しました。
スレッド 0x5754 はコード 0 (0x0) で終了しました。
スレッド 0x2a08 はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Windows\WinSxS\amd64_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.22621.1635_none_57fa636ace18905c\GdiPlus.dll' が読み込まれました。
スレッド 0x3848 はコード 0 (0x0) で終了しました。
スレッド 0x60c0 はコード 0 (0x0) で終了しました。
スレッド 0x4f00 はコード 0 (0x0) で終了しました。
スレッド 0x714c はコード 0 (0x0) で終了しました。
スレッド 0x545c はコード 0 (0x0) で終了しました。
スレッド 0x4ae8 はコード 0 (0x0) で終了しました。
スレッド 0x8b18 はコード 0 (0x0) で終了しました。
スレッド 0x6824 はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Program Files\Microsoft OneDrive\24.086.0428.0003\FileSyncShell64.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\wtsapi32.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Program Files\Box\Box\BoxShellExtShim-2.38.173.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\wintrust.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\msasn1.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\ntshrui.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\cryptsp.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\rsaenh.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\gpapi.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\cryptnet.dll' が読み込まれました。
スレッド 0x95c はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Program Files\Box\Box\BoxShellExt-2.38.173.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\EhStorShell.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\cscui.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\devobj.dll' が読み込まれました。
'TEd64.exe' (Win32): 'C:\Windows\System32\cscobj.dll' が読み込まれました。
onecore\com\combase\dcomrem\resolver.cxx(2211)\combase.dll!00007FFD144F0D20: (caller: 00007FFD14576FD2) ReturnHr(17) tid(80a4) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2414)\combase.dll!00007FFD14576FFA: (caller: 00007FFD144DB9F8) ReturnHr(18) tid(80a4) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2211)\combase.dll!00007FFD144F0D20: (caller: 00007FFD14576FD2) ReturnHr(19) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2414)\combase.dll!00007FFD14576FFA: (caller: 00007FFD144DB9F8) ReturnHr(20) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2211)\combase.dll!00007FFD144F0D20: (caller: 00007FFD14576FD2) ReturnHr(21) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2414)\combase.dll!00007FFD14576FFA: (caller: 00007FFD144DB9F8) ReturnHr(22) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2211)\combase.dll!00007FFD144F0D20: (caller: 00007FFD14576FD2) ReturnHr(23) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2414)\combase.dll!00007FFD14576FFA: (caller: 00007FFD144DB9F8) ReturnHr(24) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2211)\combase.dll!00007FFD144F0D20: (caller: 00007FFD14576FD2) ReturnHr(25) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2414)\combase.dll!00007FFD14576FFA: (caller: 00007FFD144DB9F8) ReturnHr(26) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2211)\combase.dll!00007FFD144F0D20: (caller: 00007FFD14576FD2) ReturnHr(27) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2414)\combase.dll!00007FFD14576FFA: (caller: 00007FFD144DB9F8) ReturnHr(28) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2211)\combase.dll!00007FFD144F0D20: (caller: 00007FFD14576FD2) ReturnHr(29) tid(4930) 80070005 アクセスが拒否されました。
onecore\com\combase\dcomrem\resolver.cxx(2414)\combase.dll!00007FFD14576FFA: (caller: 00007FFD144DB9F8) ReturnHr(30) tid(4930) 80070005 アクセスが拒否されました。
スレッド 0x1714 はコード 1 (0x1) で終了しました。
スレッド 0x20c はコード 0 (0x0) で終了しました。
'TEd64.exe' (Win32): 'C:\Windows\System32\ExplorerFrame.dll' がアンロードされました
スレッド 0x2930 はコード 0 (0x0) で終了しました。
スレッド 0x1a0c はコード 0 (0x0) で終了しました。
スレッド 0x5048 はコード 0 (0x0) で終了しました。
スレッド 0x8f8c はコード 0 (0x0) で終了しました。
スレッド 0x9e6c はコード 0 (0x0) で終了しました。
スレッド 0x47f4 はコード 0 (0x0) で終了しました。
スレッド 0x9d90 はコード 0 (0x0) で終了しました。
スレッド 0x1fd8 はコード 0 (0x0) で終了しました。
スレッド 0x8b7c はコード 0 (0x0) で終了しました。
スレッド 0x4480 はコード 0 (0x0) で終了しました。
スレッド 0x7d34 はコード 0 (0x0) で終了しました。
スレッド 0x7188 はコード 0 (0x0) で終了しました。

```
イベントビューアの情報
```
TLS クライアント 資格情報の作成中に致命的なエラーが発生しました。
内部エラーの状態は 10013 です。 SSPI クライアントプロセスが backgroundTaskHost (PID: 30624) 
TLS クライアント 資格情報の作成中に致命的なエラーが発生しました。
内部エラーの状態は 10013 です。 SSPI クライアントプロセスが backgroundTaskHost (PID: 30624) 
TLS クライアント 資格情報の作成中に致命的なエラーが発生しました。
内部エラーの状態は 10013 です。 SSPI クライアントプロセスが backgroundTaskHost (PID: 17280) 
TLS クライアント 資格情報の作成中に致命的なエラーが発生しました。
内部エラーの状態は 10013 です。 SSPI クライアントプロセスが backgroundTaskHost (PID: 17280) 
TLS クライアント 資格情報の作成中に致命的なエラーが発生しました。
内部エラーの状態は 10013 です。 SSPI クライアントプロセスが backgroundTaskHost (PID: 10788) 
TLS クライアント 資格情報の作成中に致命的なエラーが発生しました。
内部エラーの状態は 10013 です。 SSPI クライアントプロセスが backgroundTaskHost (PID: 10788) 
TLS クライアント 資格情報の作成中に致命的なエラーが発生しました。
内部エラーの状態は 10013 です。 SSPI クライアントプロセスが backgroundTaskHost (PID: 22100) 

アプリケーション固有 のアクセス許可の設定では、CLSID 
{2593F8B9-4EAF-457C-B68A-*} および APPID {15C20B67-12E7-4BB6-92BB-*}
 の COM サーバー アプリケーションに対するローカルアクティブ化のアクセス許可を、
 アプリケーション コンテナー 利用不可 SID (利用不可) で実行中のアドレス 
 LocalHost (LRPC 使用) のユーザー DIR\***** SID (S-1-5-21-*) に与えることはできません。
 このセキュリティアクセス許可は、コンポーネント サービス管理ツールを使って変更できます。
```
* 表示
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/464633/1dc2612d-4f09-858f-bf0e-88f82f9a5896.png)
* 2593F8B9-4EAF-457C-B68A-50F6B8EA6B54はC:\Windows\System32\RuntimeBroker.exe レジストリエディタで調べる
* 15C20B67-12E7-4BB6-92BB-7AFF07997402はPerAppRuntimeBroker

* どうもこのあたりが核心らしい。DCOMコンポーネントに対するユーザーの権限不足。
dcomcnfg ではグレーアウトしてこれ以上進めない。権限不足。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/464633/df697be5-82d2-b78e-8b9a-0636aaa1f1c0.png)
* マイコンピュータのプロパティで管理者として「Users」を追加したがもともとadminなので効果あるのか? 個人のユーザーIDは出てこない。
* COMの参考情報　https://itpfdoc.hitachi.co.jp/manuals/3021/3021323102/ITSK0139.HTM

* ChatGPTからのアドバイス。レジストリの方はバイナリデータになっていて、編集できない。
```
グループポリシーを使ったアクセス権の変更
もしグループポリシーによって設定が制限されている場合、以下の手順でグループポリシーを確認し、必要に応じて変更することができます。ただし、この作業はシステムに深刻な影響を与える可能性があるため、慎重に行う必要があります。

グループポリシーエディタの開始:

Windowsのスタートメニューから「gpedit.msc」を検索して実行します。
関連するポリシーセッティングを検索:

コンピュータの設定またはユーザーの設定の下の適切なポリシーを探します。特に「コンポーネント サービス」に関連する設定を調べます。以下のパスにあることが多いです：
管理用テンプレート → システム → COMのインフラ
ポリシーの変更:

適切なポリシーを見つけたら、そのポリシーの設定を「未構成」または「有効」に変更して、必要な変更が可能になるかどうかを確認します。
システムの再起動:

グループポリシーの変更を適用するためには、システムの再起動が必要な場合があります。
レジストリを介した変更
場合によっては、レジストリを直接編集して制限を解除する必要があるかもしれません。これはリスクが高い操作であるため、バックアップを取った上で慎重に行ってください。

レジストリエディタの起動:

「regedit」をWindowsの検索に入力して実行します。
関連するレジストリキーを探索:

DCOMの設定は通常、HKEY_LOCAL_MACHINE\Software\Classes\AppID\{YOUR_APPID_HERE} にあります。ここで {YOUR_APPID_HERE} は変更したいAPPIDに置き換えてください。
許可の変更:

レジストリキーの「Permissions」を右クリックし、「Permissions」から適切なユーザーやグループに適切なアクセス権を付与します。
```

* グループポリシーでCOMコンポーネントのセキュリティレベルを変える。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/464633/692b3764-9c60-f108-059b-d76a4e8618a2.png)



* 0000011A-0000-0000-C000-000000000046 は ProxyStubClsid32
* Combuse.dll
https://learn.microsoft.com/en-us/answers/questions/1088882/combuse-dll-could-not-find-the-resource-name-speci

# 追加
* sfc /scannow の実行
* COM関連のコンポーネントの再登録:
regsvr32 combase.dll
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/464633/9bfc202a-41c2-608b-eca3-4f20768b8517.png)
メッセージが出るが、regsvr32に対応していないDLLもあるので、特に問題ないとのこと。

とりあえず書き留め。
時間があるときにまとようと思う。

以上