パスワードを忘れた? アカウント作成
15621581 story
バグ

CCleaner、アンインストール時に無関係なファイルを削除する問題の修正へ 38

ストーリー by headless
修正 部門より
CCleaner ではインストールディレクトリにアプリとは無関係なファイルが格納されていても、アンインストール時に削除してしまうという問題があり、Avast が修正作業を進めているそうだ (BetaNews の記事CCleaner Community Forums のスレッド)。

多くのアンインストーラーはインストールディレクトリにアプリと無関係なファイルがあれば削除しないが、CCleaner のアンインストーラーは無視してインストールディレクトリごと削除してしまう。そのため、既存ディレクトリをインストール先に指定した場合など、他に何が格納されていてもアンインストール時にはすべて削除されることになる。インストール先をカスタマイズした際に専用のサブディレクトリが作成されない点が問題だとする指摘もみられるが、これは多くのインストーラーで一般的な動作であり、特に問題視することはないと思われる。

一方、最近の報告では「D:\Applications\CCleaner」にインストールした CCleaner をコントロールパネルからアンインストールしたところ、「D:\Applications」の内容がすべて削除されたという。事実とすれば深刻な問題だが、手元の環境で試してみた限りは再現しなかった。CCleaner を「D:\Applications」にインストール・アンインストールすると Applications ディレクトリごと削除されるが、「D:\Applications\CCleaner」へのインストール・アンインストールで削除されるのは CCleaner ディレクトリのみだった。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2022年04月09日 13時38分 (#4229545)

    CCcleaner、昔から有名だけど、実際使っている人っている?
    昔か。20年くらい前にはあったような気がするけど、俺も年取ったなあ。

    • by Anonymous Coward on 2022年04月09日 14時29分 (#4229557)

      あるレベルより詳しくない人のPCに一定割合で入っているような希ガス。

      あ、レベルの高い人は相談に来ないから見たこと無いか...

      # 大勢に影響ないけど、「c」が1個多いですよ

      親コメント
      • by Anonymous Coward

        えっ。CCcleanerじゃなかったんだ。昔から名前はよく見てたけど初めて知ったw

    • by Anonymous Coward

      大昔だけだね。レジストリクリーナーとして使っていたが、
      消して良い物か判断できない事が多い。MSの開発系とか。
      ini、confファイルの代わり、ソフト部品、共通ファイルの登録とか必要かもしれんが、
      既にその考え自体が時代遅れとじゃないかな。
      環境依存せず、exe一本で動くようにならんのかと。今のPCなら肥大化してもいいだろ。

      • by Anonymous Coward

        > 環境依存せず、exe一本で動くようにならんのかと。

        Windows.exeだけになるんですね。

      • by Anonymous Coward

        消せるよーと言ってくるものを消してもまあ問題が起きない。
        しかし消しても動作に変化は良くも悪くもない。
        ワンexeファイル形式は却下。ファイルの更新が面倒だし遅くなる。

      • by Anonymous Coward

        スマホのアプリとか、アプリがサンドボックス化されてる環境だと、データも設定もアプリ独立で持ってるな。
        基本的に、別のアプリのデータにはアクセスできない。
        Windowsも、ストアからインストールするアプリはそうなってるんじゃないかな。

        昔からレジストリを親の仇みたいに嫌う人いるよね。
        今のシステムだと、パフォーマンスに問題ないし、レジストリが破壊されるようなこともなくなってるから、そこまで嫌う必要はないと思うんだが。
        レジストリはシステム全体で共有されるから、セキュリティ的には良くないんだが、Windowsはファイルシステムのほうもシステム全体で共有だから、今更な気もするが。

        • by Anonymous Coward

          レジストリは、起動しなくなったWindowsから設定を抜き出すことができないから嫌だな。

          • by Anonymous Coward

            ふつうにハイブの読み込みでアクセスできるが?

  • by Anonymous Coward on 2022年04月09日 14時31分 (#4229560)

    のアンインストーラもProgram filesを消してしまうバグがあったのを思い出した

    • by fall-ken (14537) on 2022年04月09日 15時13分 (#4229586) 日記

      ゲームをアップデートするだけでHDDが消される悪夢な案件もありましたね

      PC版『PSO2』にてHDD内のデータが一部削除される可能性のある不具合(9/13 21:00更新)
      https://pso2.jp/players/news/2150/?page=312 [pso2.jp]

      親コメント
      • by Anonymous Coward

        これは確か

        アップデータが解凍・インストール後に不要になったファイルを削除するのだが、親ディレクトリの指定がずれていて、
        ファイル削除の起点になるパスがPSO2のインストールしているフォルダの1個上になってしまい、
        Program Filesのほかのフォルダのファイルも削除していってしまう
        自分自身は消せないので、Program FilesのAからPまで消したところでエラーで止まる

        という現象だったような(Program Files以外に置いていれば違うファイルが消される)

    • by Anonymous Coward
      みずいろ…うっ頭が
  • by Anonymous Coward on 2022年04月09日 15時04分 (#4229578)

    たしかかつてのみずいろアンインストール時に無関係ファイル消しちゃうのも同じ問題だったはず
    かつこのタイプはアンインストール予定のディレクトリが存在しないと削除対象ディレクトリが(設定に失敗することで)ルートになってシステム壊しちゃう…だっけ?

    • by Anonymous Coward

      全然「同じ問題」に見えないんだけど

      • by Anonymous Coward

        > 「D:\Applications」の内容がすべて削除されたという
        親ディレクトリ削除みたいだから、ルートから削除よりは多少被害は小さいくらいか?
        システム壊れるという意味では、同じかもしれんが。

        みずいろは、ゲームシステム付属の簡易アンインストーラをにバグがあったんだっけ。
        あのゲームシステム、当時は広く使われてたが、確か個人が制作したものなんだよな。
        怖い怖い

  • by Anonymous Coward on 2022年04月09日 15時33分 (#4229593)

    この手の問題が起こるたび、Windows標準でパッケージマネージャくらい作ればいいのになぁ、と思う。

    • by Anonymous Coward

      昨年正式リリースされましたよ
      wingetといいます

      • by Anonymous Coward

        これ、Win32アプリのインストールはインストーラーをサイレントモードで起動しているだけだから、こういう問題が起きるかどうかは結局インストーラーの出来に左右されるよね。

    • by Anonymous Coward

      何種類か世代交代してるけど有るぞ。
      なぜか独自のやつを使うやつが多いだけで。

      ストアアプリ以外含めたも統一したシステムを作るべきだったとは思うけど。
      新しいシステムを提供するときに古いシステムを切り捨てて
      強制的に世代交代させようとして失敗した例の一つではある。

    • by Anonymous Coward

      binにサブディリクトリなんぞ無しすべてぶっ込めるマネージャ希望
      同名ファイルは勝手に尻尾つけて善きに計らうヤツ
      ライブラリだけの更新も他アプリケーションへの副作用無く対応したヤツ
      ユーザ環境の抽出バックアップにも対応したヤツ
      自作スクリプト等も含めOSと協業衝突回避と掃除、移管しやすいアプリケーション環境になんないかなー

    • by Anonymous Coward

      パッケージマネージャーではないけど、せめてWindows Installer(.msiファイル)使ってほしい。

      Windows Installerでは、インストールした個々のファイルパスを記録してアンインストール時には個々のファイルを削除する処理だし、フォルダの削除も中身が空なら削除するという挙動。

  • by Anonymous Coward on 2022年04月09日 15時41分 (#4229599)

    レジストリーが肥大化しないように最初から作れないものなのかと思う

    • by Anonymous Coward

      レジストリーが肥大化しないように最初から作れないものなのかと思う

      アプリが「そのアプリに紐づいたレジストリしか書き込みできない」を厳格にやらない限り無理。
      やったら後方互換性が壊滅的なことになる。

      • by Anonymous Coward

        個々のキーに権限設定可能だけど活かせない状態ですからねぇ。
        3.1/95系の雑なやつ移行させるにはしょ~がなかった面はあるでしょうけど…

      • by Anonymous Coward

        MSIXパッケージ化されたアプリではレジストリの仮想化をやってる。アプリから書き込んだレジストリキーの内容は独立したハイブに書き込まれてそのアプリだけにアクセスでき、アンインストールとともに綺麗さっぱりなくなる

    • by Anonymous Coward

      dir /a %USERPROFILE%\ntuser.dat ってしてみよう。per user な設定って、そんなもんなんだぞ。ってことは…。

    • by Anonymous Coward

      ずいぶん前からトレンドはレジストリを使わずプロファイルフォルダ配下にアプリごとに設定ファイルを持つ方式だぞ

  • by Anonymous Coward on 2022年04月09日 18時15分 (#4229648)

    なぜ一個上のフォルダまで消してしまうのか

    • by Anonymous Coward

      なぜ一個上のフォルダまで消してしまうのか

      インストール先に作成したディレクトリを消すのにGetDirectoriesで
      .
      ..
      conf\
      data\
      を取り出して、それを削除していくと、".."で上のディレクトリも対象になってしまって。。。とか。

      • by Anonymous Coward

        インストール先に作成したディレクトリを消すのにGetDirectoriesで
        .
        ..
        conf\
        data\
        を取り出して、それを削除していくと、".."で上のディレクトリも対象になってしまって。。。とか。

        フォルダ一覧を取得するAPIで.や..を返しうる実装なんて見たことないんだけど、具体的にどんな処理系の話をしてる?
        少なくとも.NET系のGetDirectoriesにはそんな動作はないが。

  • by Anonymous Coward on 2022年04月09日 19時05分 (#4229660)

    多分、こんな経緯で自分もやらかすかもしれない。

    インストーラー「どこにインスコするんや?ディレクトリを選んだってや」
    ユーザー「D:\Application」
    インストーラー「じゃあその中に CCleaner ディレクトリを作ってやな・・・
       せや、アンインスコ用にディレクトリを記録しといたろ。
       〝インストール場所は D:\Application やで〟と・・この中の CCleaner ディレクトリを消せばええんよな」

    アンインストーラー「お、インスコ場所は D:\Application だったんか。じゃあここ全部消せばええんやな!」

  • by Anonymous Coward on 2022年04月09日 19時27分 (#4229666)

    インストーラスクリプトの組み方の問題で
    このアプリ以外でもちょくちょく起きてる
    なんかであったのは日本語がパスに入ってると
    思いっきり上位フォルダを消してしまう奴
    まぁ結局のところ検証不足なんですが。

  • by Anonymous Coward on 2022年04月10日 14時46分 (#4229926)

    本来の用途では使わなくなった
    常駐しないとか~しないとかの設定はすべて外しておく

    自動起動してしまうソフトの削除とか無効化に便利
    削除してしまうとまたいつのまにか入ってくるけど
    無効化だと入らないのでガードできて便利
    # 無効化にする普通のやりかたを知らない

    右クリックのとこにメニューいれてくるソフト対策の
    お掃除にも使っていたがWindows11で隠してくれるよ
    うになって目障りではなくなってきたので頻度は減った

typodupeerror

私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike

読み込み中...