web-dev-qa-db-ja.com

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

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

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

20
Mark Boulder

それは不可能だからです。

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

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

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

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

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

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

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

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

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

30
Lukas Rieger

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

以下は、レジストリエントリを残した場合のいくつかのケースと理由のリストです。

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

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

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

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

19
Keltari

残りのレジストリを取り除くには、IOBITアンインストーラーを使用してみてください。これは、これまでで最も優れたアンインストーラーです。それ以外に、無料です。常に使用しています。強力なアンインストール機能を備えているため、残ったレジストリキーは、プロンプトが表示されてレジストリキーが削除されたときにチェックマークボックスをクリックします。 Iobitは他のプログラムに付属しています。アンインストーラーを使用してそれらを取り除くだけです

0