通常のアンインストールではレジストリから値が削除されないのはなぜですか?


20

レジストリからアンインストールされたソフトウェアの残りのトレースを削除するにはどうすればよいですか?-プログラムをアンインストールして、後でRegEditで検索するたびに、プログラムはまだそこにあります!

Windowsアプリの大部分が、レジストリにごく小さな痕跡を残そうとするのはなぜですか?それはWindowsのせいですか、それとも開発者ですか?


3
これらの種類のプログラムの大規模なグループは、時間制限のある試用プログラムに属し、その後は購入する必要があります。Windowsに痕跡が残らない場合は、試用期間が終了した後、ソフトウェアをアンインストールして再インストールし、試用期間をリセットできます。アンインストール時のプログラムの動作を決定するのは、開発者次第です。完全にアンインストールし、インストール時に追加したものをすべて削除するプログラムとドライバーソフトウェアがあります。
コンスピリア

回答:


30

不可能だからです。

レジストリには複数のルートノードがありますが、興味深いのはLocalMachineCurrentUserの 2つだけです。通常、セットアップは値をLocalMachineに書き込み、実行中のプログラムはCurrentUserのみに書き込みます(実際、セットアップがアクセス権を乱さない限り、実行中のプログラム LocalMachineに書き込むことができません。)

LocalMachineの残り物を保持することは怠otherですが、他の回答で指摘されているように、ユーザー部分をクリーンアップすることはできません。

プログラムがマシンごとにインストールされ(ほとんどの場合)、複数のユーザーがそれを使用する場合、アンインストーラーはどうすればよいですか?現在のアカウントのユーザー設定を安全に削除できますが、現在のアカウントはあなたのアカウントではない可能性があります。(これは、管理者以外のアカウントからアンインストーラーを起動し、管理者アカウントの資格情報を入力した場合に発生します。セットアップは最初のアカウントではなく、そのアカウントで実行されています)。

他のユーザーはどうですか?すべてのユーザーを列挙しようとする可能性がありますが、レジストリキーがロードされない場合があります。(Windowsは遅延型であり、必要なもののみを読み込みます。)

しかし、あなたもそれを試してはいけません。ターミナルサービスなどで移動プロファイルを使用し、アンインストール時にすべての設定を削除すると、実際に使用中のものを混乱させて削除してしまう可能性があります。

ターミナルサーバーは基本的に、複数のユーザーが同時にログインしてアプリケーションを使用する1台のWindowsマシンです。

1つのアプリケーションを実行している2つのターミナルサーバーがあるとします。TS1でアプリケーションをアンインストールすると、移動プロファイルがあるため、すべてのユーザーのすべての設定がTS2で失われます。おっとっと。

同じことは、ユーザーごとのディレクトリ内のファイルにも当てはまります。

企業プログラムのセットアップでは、マシンごとのものを削除しますが、ユーザーごとのものには触れず、現在セットアップを実行しているユーザーにも触れません。


また、アンインストールとは必ずしもアプリを完全に削除することを意味しないことを忘れないでください。アプリのバージョン1をアンインストールしてから、同じアプリのバージョン2をインストールすることもあります。その場合、すべての設定を失いたくありません。
ステファン

19

これには多くの理由がありますが、MicrosoftまたはWindowsオペレーティングシステムの問題ではありません。

以下は、レジストリエントリを残す背後にあるいくつかのケースと理由のリストです。

  • 不適切なプログラミング -開発者がアプリケーションのアンインストーラーを適切に作成せず、レジストリエントリが残されています。それに加えて、アンインストーラーはレジストリエントリを削除するための適切な権限を持っていない/使用していない可能性があります。また、これらのキーを使用するアプリケーションが複数存在する可能性もあります。インスタンスの場合、同じキーに書き込む同じ開発者の2つのアプリケーション。

  • 意図的に残された-1つのコメントが述べたように、これらのエントリは意図的に残された可能性があります。一部のアプリケーションには試用期間があり、その期間の後、アプリケーションを削除することを選択できます。後でアプリケーションを再インストールすることを選択した場合、これらのキーは、アプリケーションがインストールされた時期に関する情報を提供します。それに加えて、一部の開発者は、アプリケーションの再インストールを選択した場合に備えて、これらのキーを残すことを選択する場合があります。開発者がレジストリキーを使用してカスタマイズを保存した場合、そこに残される可能性があるため、すべてのカスタマイズを再インストールしても保持されます。壮大なスキームでは、レジストリキーは数バイトを占有します。

キーを削除する必要がありますか?場合によります。Windowsレジストリは、混乱する危険な場所です。システムを不注意に破壊する可能性があります。無関係なキーを残しても、システムが損傷することはありません。レジストリのクリーニング/デフラグはシステムを高速化すると言う人もいますが、それは繰り返し間違っていること証明ています

これらのプログラムを本当に削除したい場合は、プログラムのすべてのトレースを削除できるアンインストーラーツールがいくつかあります。これらのプログラムは、別のプログラムのインストーラーを監視し、ファイルシステムとレジストリに対して行われたすべてのアクションを記録し、それらのアクションを完全に削除します。これらのツールの1つの問題は、保持したいものを削除できる可能性があることです。


「数バイト」であるにもかかわらず、これらのバイトは合計されます。未使用のエントリが増えるにつれて、レジストリが遅くなる可能性があります。「典型的な」ユーザーにはおそらく関係ありませんが、ヘビーユーザーには大きな問題があります。これが、システムを「正常」に保つために、6〜12か月ごとにWindowsを更新/再インストールすることを推奨するのが一般的だった理由です。CCleanerのようなプログラムは、アプリの残りの部分をクリーンアップすることで、システムをより長く高速に保つことができます。
phyrfox

3
私の答えで述べた@phyrfox、レジストリクリーナーはヘビ油です。彼らはまったく役に立たない。
ケルタリ

1
Win9xの時代には、レジストリサイズが重要になり、多くの古いキーがOSの速度を低下させました。しかし、それはずっと前のことであり、NTの嫌悪感は別物です。ただし、修正が必要な場合があります。「肥大化した」レジストリハイブを圧縮
beatcracker

10
@phyrfox:「CCleanerのようなプログラムは、システムをより高速に長く保つことができます」-いいえ。「これが、システムを「健康」に保つために6〜12か月ごとにWindowsを更新/再インストールすることをお勧めするのが一般的な理由です。」私はここに座って、5年前のインストールを入力していますが、これは頻繁に使用されており、目立った減速はありません。企業がスネークオイルを商売にしているのは、このような推奨事項です。
カラン

1
ええ、レジストリは実際にはかなり高速です(そして、一般的に使用されるハイブとキーは通常メモリに保持されます)。昔でさえ、「肥大化した」レジストリの最大の問題は、シェル拡張やHKCRのようなものでした-それらを提供したソフトウェアを再インストールするとすぐに戻ってきました。前回「パフォーマンス」の理由でOSを再インストールしてからかなり長い時間が経ちました(まだWindows XPでは、7 ではありません)。
ルアーン

0

残ったレジストリを削除するには、IOBITアンインストーラーを使用してみてください。残っているレジストリキーは、プロンプトが表示されてレジストリキーが削除されたら、チェックマークボックスをクリックします。Iobitには他のプログラムが付属しています。アンインストーラーを使用してそれらを削除してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.