なぜ通常のソフトウェアのアンインストールでレジストリから関連する値がすべて削除されないのですか?

プログラムをアンインストールすると、そのプログラムのすべての痕跡がシステムから削除されるという “合理的”な期待ですが、そうではないことがよくあります。何故ですか?今日のスーパーユーザQ&Aの投稿には、興味深い読者の質問に対する回答があります。

今日の質疑応答セッションは、Q&Aウェブサイトのコミュニティ主導型のグループである、スタック交換の細分化であるスーパーユーザーからの礼儀です。

スクリーンショットはwandersick(Flickr)の礼儀です。

SuperUserリーダーMark Boulderは、通常のソフトウェアアンインストール後にレジストリ値が残っている理由を知りたい

スーパーユーザのトピックを展開するアンインストールされたソフトウェアの残量をレジストリから削除するにはどうすればよいですか?プログラムをアンインストールして後でRegEditでルックアップするたびに、それはまだありますか?

大部分のWindowsアプリケーションは、レジストリに自分自身の小さな痕跡を残そうとしているのはなぜですか? Windowsや開発者に欠陥がありますか?

ソフトウェアを通常アンインストールした後、レジストリ値が通常「残っている」のはなぜですか?

スーパーユーザの投稿者Lukas RiegerとKeltariが私たちの答えを持っています。まず、ルーカス・リーガー

それは不可能なので。レジストリには複数のルートノードがありますが、LocalMachineとCurrentUserの2つしかありません。通常、セットアップは値をLocalMachineに書き込み、実行中のプログラムはCurrentUserに書き込むだけです(実際には、セットアップで権限が失われない限り、実行中のプログラムはLocalMachineに書き込めません)。

LocalMachineに残り物を残しておくのは怠惰ですが(他の回答で指摘されているように)、CurrentUserの部分をきれいにすることはできません。

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

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

しかし、あなたはそれを試してはいけません。移動プロファイル(つまり端末サービス)を使用してアンインストール時にすべての設定を削除すると、実際にはまだ使用されているものを本当に混乱させて削除することができます。ターミナルサーバーは基本的に1台のWindowsマシンで、複数のユーザーが同時にログインしてアプリケーションを使用します。 1つのアプリケーションを実行する2つのターミナルサーバーがあるとします。 TS1でアプリケーションをアンインストールすると、移動プロファイルがあるため、すべてのユーザーのすべての設定がTS2上に残ります。おっとっと。

同じことは、ユーザー単位のディレクトリ内のファイルにも適用されます。私の会社のプログラムのセットアップでは、マシンごとのものは削除しますが、現在セットアップを実行しているユーザーではなく、ユーザーごとのものには触れないでください。

Keltariの答えが続く

このような場合には多くの理由がありますが、MicrosoftやWindowsオペレーティングシステムの障害ではありません。

以下は、レジストリエントリが残されている理由と理由のリストです

悪いプログラミング – 開発者がアプリケーションアンインストーラを正しく書いておらず、レジストリエントリが残っています。それに加えて、アンインストーラは、レジストリエントリを削除するための適切な権限を持っていないかもしれません。これらのキーを使用するアプリケーションが複数存在することもあります。たとえば、同じ開発者の2つのアプリケーションが同じキーに書き込む場合です。

左記目的 – 上記のように、これらのエントリーは意図的に残されていた可能性があります。一部のアプリケーションに試用期間があり、その期間が過ぎると、そのアプリケーションを削除することがあります。アプリケーションを後で再インストールすることを選択した場合、それらのキーにより、インストール時のアプリケーション情報が提供されます。それに加えて、アプリケーションを再インストールすることを選択した場合に備えて、それらのキーを残すことを選択する開発者もいます。開発者がレジストリキーを使用してカスタマイズを保存していた場合、アプリケーションを再インストールするとすべてのカスタマイズが保持されるため、レジストリキーを使用してカスタマイズを保存することができます。物事の壮大なスキームでは、レジストリキーは数バイトしかかかりません。

あなたはキーを削除する必要がありますか?場合によります。 Windowsレジストリは危険な場所にあります。あなたは誤ってシステムを壊す可能性があります。無関係なキーを残しても、システムを傷つけることはありません。レジストリのクリーニング/デフラグがシステムのスピードアップをもたらすと言う人もいますが、それは繰り返し誤っていることが証明されています。

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

説明に追加するものがありますか?コメントの音がする。他の技術に精通したStack Exchangeユーザーからの回答をもっとたくさん読んでみたいですか?ディスカッションスレッド全体をチェックしてください。

SU上のKeltariはスマートなクッキーです。

私は一般的にそれらの余分なレジストリエントリを削除するPiriformからCCleanerを使用します。それはとてもうまくいく。

アンインストール時に完全に削除されるプログラムはまだ発見されていません。私はまだ未使用のレジストリエントリを完全に削除するレジストリクリーニングプログラムを発見していません(そしてこれはCCleanerを含みます)。自分で試してみてください – あなたのレジストリクリーナーを実行し、レジストリを “クリーン”してからregeditを起動し、アンインストールされました。あなたは、あなたがきれいにされたと思われるプログラムのためのすべての種類のエントリを見るでしょう。良いニュースは、これらのエントリはおそらく空であるため、何も傷つけてはいけません。私の意見は、レジストリクリーナーは迷惑です。彼らは余分な機能と他のjunkwareのためにあなたに$ 30を支払わせる試みです….そしてはい、これはCCleanerを含んでいます!ちょうど私の意見….

[注意:冒険的なソートでない限り、regeditでレジストリキーを削除しないでください。あなたが慎重ではない場合、コンピュータをかなり素早くホークすることができます!]

ちょうど考え…あなたrevoのアンインストーラプロを試してみましたか…..あなたは無料トライアルを得ることができますし、私は本当にそれと幸運を持っていました…それを完了するまで実行し、それを再実行してください。それはそれのほぼすべてを得るべきで、うまくいけばそれのすべて….幸運..

私は、おそらく意味がない最大のレジストリクリーニングから、安全なアンインストールまで、焦点を変えるだろう。私はCCleanerを何年も無料で使用しており、プログラムを削除しても問題は一度もありませんでした。もう一度、削除する必要があります。別のCCleanerレジストリツールを使用する必要がある場合は、空のスキャンが行われるまでレジストリツールを再実行してください。無効なレジストリエントリを削除するプロセスは、新しい無効なエントリを作成することがよくあります。ジョブを終了するには3回以上のスキャンが必要な場合があります。

私は自分自身をccleanerをガイドとして使用しています。クレッシェン手作業による削除はそれを私のために戻しません。私はccleanerを使用した後、私はすべてのプログラムに行き、それが表示されているものを削除してレジストリではなく、残りの部分を削除し、レジストリではなくプログラミングからすべてのトレースを削除しているかどうかを確認します。

ロック、ペーパー、はさみのゲームは長い間生きています;ゲームは中国の漢王朝(紀元前206年〜220年)の時代にまでさかのぼります。