misc.log

日常茶飯事とお仕事と

Cドライブに「found.000」「found.001」というフォルダーがあり、消せない

ふとPCのCドライブを見ていて「found.000」「found.001」……「found.004」というフォルダーがあることに気付きました。アクセスしようとすると「管理者の許可が必要」とのこと。OKで権限を取得すると、フォルダーの内容を開く事はできるのですが、ファイルの中身を(画像データなど)を見ようとしても権限が無くできません。

何のフォルダーなのか

どうやら、過去にチェックディスク(chkdskコマンド)でドライブをチェックした際に、チェックディスクが作った作業用/ファイル退避用フォルダーのようです。マイクロソフトのコミュニティのQAでもいくつか質問として挙がっています。

Is this 188 GB protected "found.000" folder safe to delete?
https://answers.microsoft.com/en-us/windows/forum/all/is-this-188-gb-protected-found000-folder-safe-to/b5185c41-3832-4221-981c-2cb786a3b1fd

上記は「188GBもあるfound.000フォルダーがあるのだが、消してもOKか?」という質問。別の人が回答していますが、内容は

  • ディスクの整合性チェックツールであるchkdsk処理が自動的に生成したもの。
  • ハードディスクなどのチェック中に、不良セクター(読めないデータや領域)が有った際、それを修復する作業過程で作られる。
  • 削除しても問題無い。
  • ただ、何かファイルが足りないといった状況が発生しているなら、このフォルダーに退避されている可能性が有るので、その場合はここから戻すと良い。

とのこと。なるほど。実際、フォルダーのタイムスタンプを見ると最新の「found.004」は先日のブルースクリーン事件の日に該当します。そういうことなのですね。ただ、古いフォルダー(found.000)は2021年1月23日、朝4じや朝5時。これは……今使っているPCのメインドライブをSSDに換装し、古いHDDの内容を入れ替えようとして四苦八苦していたときの日付です……。

www.backyrd.net
www.backyrd.net

見られない、消せない

このフォルダーですが、消そうとしても権限が無いとのことで消せません。おかしいと思い、フォルダーやファイルのプロパティから「セキュリティ」→「詳細設定」を開くと、「所有者」のところが「表示できません」になっています。下図は後述の作業で補正を掛けたり手作業で変更した、よくある正常な状態です。下図の上段にある「所有者:」というところが、AdministatorやTrustedInstallerではなく、「表示できません」になっていました(既に変更してしまっていてその時の画像は取り損ねました)。

プロパティ→セキュリティ→詳細設定で表示されるダイアログ

通常、この所有者設定を無理矢理Administratorsなどに変更すれば、サブフォルダーの所有者も合わせて変更。一気にフォルダー群の権限を確保できるはずなのですが、どうやら「元の所有者を確認できないので、変更すらできない」状態になってしまっているようです。

恐らくですが、このPCのストレージは以下のような経緯で今に至っています。それが原因かと……。

  1. Windows 7で長らく利用。
  2. Windows 7の修復ディスクからWindowsを修復。
  3. Windows 10にアップグレード。
  4. Windows 10の修復ディスクを元に、4TBのSSDにWindows10を再構築。

この修復ディスクでの修復ですが、ドライブ構成なども前のものを引き継いだり、その時の権限なども変に引き継いだりするようで、上記の過程で結構「入れ直す前のWindowsの権限があるので開けない」といった場所などが出来たりしていました。その流れで、修復前やWindows7時代の権限設定などが残って変なことになったのでは??と予想しています。

対処方法

いくつかのファイルについてはファイル、フォルダーを1個ずつ所有者設定し、フルコントロールを得ることで削除できたのですが、トータルで9GBほどのデータがあるためこんな方法はやっていられません。調べてみたところ、コマンドで所有者を一括変更できることが判りました。

superuser.com

具体的には、管理者権限でコマンドプロンプトを開き、下記のコマンドを実行します。

takeownコマンドで一括所有者設定変更を行う

takeown /r /d y /f c:\found.000

これで、所有者設定が「今使っている自分のアカウント」に変更され、権限操作が自由に行えるようになりました。

ちなみにtakeownに続いて指定している引数は下記のようになっています。

  • /r …… 再帰指定。サブフォルダーも全て処理対象とする。
  • /d y …… 再帰指定の場合に使える指定。プロンプトが出てきた際に「y(はい)」を押したことにする。
  • /f …… ファイル/フォルダー名指定。続けて対象フォルダーなどを指定する。

これで、権限を取得しますか?といった確認メッセージにすべて「Y」を押しつつ、サブフォルダーまで全て処理を行う、ということができるようですね。

気になったこと

上記のコマンドを試すにあたり、合計5つ出来ていた「found.xxx」フォルダーのうち「found.000」を対象に試してみたのですが、他の「found.001」や「found.002」も一緒に変更されてしまいました。もしかしたら、詳細不明だった「前のWindowsのユーザー」と、今の自分のアカウントが紐付けられたことで一気に所有者設定が変わったのかな?とか想像はしてみているのですが、定かではありません。

きちんとWindowsの権限について仕組みを学べば判るのかもしれませんが、そこまでやる時間は無いので、一旦問題解決としておきます……。

いちど、Windows10をきちんと買って入れ直そうかな。ゼロから。Windows7からのアップグレードではなく……。

PCクラッシュ後、いくつかのアプリが起動しなくなった

Guilty Gear Striveをオンライン対戦で楽しんでいたのですよ……。そしたら急にハングアップからのブルースクリーン。強制再起動に見舞われました。対戦相手の方、ごめんなさい。

再起動が繰り返された後、起動しないアプリが

その後、再起動するも、ログイン画面後しばらくするとブルースクリーン、という状況が3回ほど続き、諦めかけていたところなんとか起動したのですが、ログイン後に見慣れないメッセージが表示されていました。

MSACM32.dllが見つからないというエラー

エラーを出しているのは、Elements Auto Creations 2021.exeというプログラム。自分のPCで「Elements」という単語がついているアプリは「Photoshop Elements 2021」しかありません。調べてみたところ、Photoshop Elementsに付属するアプリで、Photoshop Element起動時に表示されるホーム画面(これがまためんどくさい……)から呼び出せる「他のメディアを読み込んで作品を自動作成する」というアプリだそうです。いらない……。要らないのだけど、エラーが毎回でるのも面倒なのでなんとかしたいところですね。

Photoshop Elementsのホーム画面と自動作成機能の場所

他のアプリも起動しなかった

このPhotoshop Elementsの不要なアプリだけなら正直放置していても問題なかったのですが、すぐに他のアプリ2本が起動しないことに気付きました。下記の2つです。

  • TMPGEnc Smart Renderer 6
  • APEX Legends

前者は数日前に買ったばかりの、MP4等の動画をエンコードで劣化させることなく切ったり繋いだりするアプリ。後者は言わずとしれたオンライン対戦FPSですね。それぞれ下記のようなエラーを出して起動失敗してしまうようになりました。

TMPGEnc Smart Rendererが出したエラー

アプリケーションに必須のファイルが存在しないか正しく読み込めませんでした。アプリケーションを一度アンインストールしてから再インストールしてください。

APEX Legendsが出したエラー

Error: Failed to load library: AVIFIL32.dll

結論:すべて犯人はMSACM32.dll

長くなりそうなので先に結論を書いておきます。犯人は、PCクラッシュの過程で壊れたか、原因となったMSACM32.dllというファイルでした。これが「Windows\System32」フォルダーから無くなってしまっていたため、別のWindows10パソコンから持ってきて配置。再起動したら全て上手くいきました。

以下に、そこに至るまでに試したことを書いておきます。参考にしてください。

ただ、こうしたファイルをネットからダウンロードしてきて入れるのは避けた方がいいです。これだけは気をつけてください。同じように困っている人に付け込んで、「このファイルを使うと良いよ」と、ウイルスやワームなどを仕込んだファイルを配布されたらひとたまりもありません。必ず「身近な別のパソコンなどから持ってくる」にとどめるようにしてください(それが無い場合は……諦めた方がいいかもです)。

TMPGEnc Smart Rendererに関してやったこと

まず、メッセージ通り「アプリを再インストール」しました。公式サイトには、修復インストールか、再インストールを試し、それでもダメならサポートに連絡を、と書いてありましたが、どう考えてもサポートに連絡して解決する気がしません(普通に考えたら「直前のクラッシュが原因ですから、Windowsから入れ直してください」と自分だったら回答しそう)。ですので3回ほど再インストールを繰り返した時点でこちらの対応はギブアップ。どうにもならなければサポートに連絡しよう、ということで一旦放置しました。

APEX Legendsに関してやったこと

  • Originのゲームランチャーから、「修復」を試しました …… 効果無し。
  • 管理者として起動したコマンドプロンプトから、システムファイルチェッカー「sfc」を起動し、システムファイルの修復を試みた …… 効果無し。
  • エラーメッセージにある「AVIFIL32.dll」をSysWOW64フォルダーから探してきて、ファイルの所有者をAdministratorsにすることでアクセス権をつけてみた …… 効果無し。

最後はアンインストールからの再インストールか、とも思ったのですが、問題となっているのがWindowsのシステムファイルであれば、いくら外部からのアプリを入れ直しても効果は無いと思ったので、これも一旦この状態でおいておくことにしました。

sfc.exeの結果ログを確認してみる

システムファイルチェッカー「sfc」は、実行するとこんな感じでしばらく待たされます。

system file checkerを起動している様子

その後、このようにメッセージを出して終了。終了後はWindows\Logs\CBS フォルダーに「CBS.log」というログファイルを吐き出します。

system file checker終了のメッセージ

Windows リソース保護により、破損したファイルが見つかりましたが、それらの一部は修復できませんでした。オンライン修復の場合、詳細は次の場所にあるCBSログファイルに含まれています
windir\ Logs\CBS\CBS.log(たとえば C:\Windows\Logs\CBS\CBS.log)。オフライン修復の場合、詳細は /OFFLOGFILE フラグによって指定したログファイルに含まれています。

どうやら、システムファイルの中に破損したものを見つけたようですが、修復出来なかった、と。終了報告メッセージの「Windowsリソース保護」という言葉がどこに掛かるのかよくわからないのですが、なんにせよ修復失敗したことは確かです。ログファイルがあるとのことなので、ファイルを見に行ってみました*1

ログには、このような記述がありました。

CBS.logの中身

抜粋するとこんな感じです。

Cannot repair member file [l:11]'msacm32.dll' of Microsoft-Windows-Audio-MMECore-ACM, version 10.0.19041.1
Could not reproject corrupted file \??\C:\WINDOWS\System32\\msacm32.dll; source file in store is also corrupted

ファイルは「corrupted(崩壊している)」とのこと。しかし、これがPhotoshop Elementsのツールが出していたエラーの原因なのは間違いないですね。ということで、このファイルを実際に見てみよう……とSystem32フォルダーを見に言ったところ、ありませんでした。最初から消えていたのか、sfcが修復の過程でゴミとして消したのか判りません。とりあえず、無いのでアクセスできない、そういうことのようです。

まずはMSACM32.dllの問題を片付ける

このファイル、どうやら32bitアプリのオーディオ、音声関連の処理を受け持っている部品のようで、Windows自体に含まれるものです。なので、修復ディスクや修復領域にあるWindowsインストーラーで入れ直しができるのでは??と思い、今の環境を作った際に作成しておいた修復ディスクから起動して試してみたのですが……。バックアップや復元ポイントを作っていないと戻せないんですね。また、今の環境はWindows7からのアップグレードの際に作ったUSBメモリーのデータを元にインストールしたWindows10で、どうやらHDDやSSDにはWindowsのイメージデータが無く、USBも読めなかったのでアクセスできませんでした。

もしかしたら、このあたりの情報が揃っている環境であれば、Windowsシステムファイルを入れ直すことができるのかもしれません。が、私の環境では駄目そうということで諦めました。

ではどうするか……。他のPCから持ってくればいいじゃない、という路線で、子供のパソコンからファイルを失敬してきて、System32フォルダーにファイルを配置しました。この力業は、下記のサイトのやり方を参考にしたものです。

dspckn.blogspot.com

すべてが解決した

システムフォルダーにファイルを置いたので、念のためPC自体を再起動。その後、ログインしてみたところ、発生していたPhotoshop Elementsのツールエラーが消えました。また、TMPGEnc Smart Renderer 6も起動、APEX Legendsも起動するようになりました。

よかった!!

APEXの「AVIFIL32.dll」のエラー原因

では、なんでファイル名がちがうエラーが起きていたAPEXのエラーまで解決したのでしょうか?WindowsのDLLファイルの依存関係を調べるツール「Dependencies」で、AVIFIL32.dllを調べてみたところ……

AVIFIL32.dllの依存関係を調査したところ

やはり……AVIFIL32.dllは、内部でMSACM32.dllを使っており、MSACM32.dllが無いために正常に動かなかったのですね。そのため、MSACM32.dllを正しく配置するとエラーも消えた、ということのようです。

まとめ

というわけで、結局「そもそもなんでクラッシュしたの?」ということは不明ですが、破損したDLLファイルを特定し、別のPCから持ってきて入れ替えることで当面の問題は解決出来たように思います。

ただ、この方法がたまたま今回は上手く行きましたが、破損ファイルが「システムに登録する必要のあるライブラリーファイル」などであった場合、ファイルを置くだけでは無くRegsvr32を使ったシステムへの登録なども必要だったかもしれません(そういう手順を書いているサイトもありましたので)。あくまで、今回のケースは一例として扱ってください。失敗しても一切の責任は負えませんので悪しからず。

それから、システムの復元ポイントというやつを定期的に取る様にしておけば、もう少し楽だったかもしれませんね。普段使いPCの運用方針を少し見直すべきかもしれません。

*1:sfcの終了メッセージにある「CBS.log」ですが、常時ログが追加されていっているようです。なので、中身を閲覧する場合、ファイルをコピーしてどこか適当なフォルダーに置いてから閲覧することをお勧めします。

Distributed COM(DCOM)関連の警告を消す

下記の警告がイベントビューワーに出ているのが気になるので、消してみます。

コンピューターの既定 のアクセス許可の設定では、CLSID
{0358B920-0AC7-461F-98F4-58E32CD89148}
および APPID
{3EB3C877-1F16-487C-9050-104DBCD66683}
の COM サーバー アプリケーションに対するローカルアクティブ化のアクセス許可を、アプリケーション コンテナー 利用不可 SID (利用不可) で実行中のアドレス LocalHost (LRPC 使用) のユーザー NT AUTHORITY\LOCAL SERVICE SID (S-1-5-19) に与えることはできません。このセキュリティ アクセス許可は、コンポーネント サービス管理ツールを使って変更できます。

対象は、どうやらこれですね。

3EB3C877……で始まるAppIDのアプリ

こちらのサイトと、過去に自分が書いた内容を参考に、コンポーネントサービスから対象の「セキュリティ」→「起動とアクティブ化のアクセス許可」の設定を変更します。

pcrepair.w-pickup.com
www.backyrd.net

設定変更後、無事警告は出なくなりました。なんでこの警告がちょくちょくでるようになるんですかね……。もしかしたら、Windows 7からアップグレードを繰り返してきたOSだからかもしれません。どこかできちんと入れ直すかなぁ。