Windowsで複数のプログラムを一度にアンインストールしたり削除したりできないのはなぜ?その理由を教えてください。内部システムを混乱させてしまうのでしょうか?
複数のプログラムを一度にアンインストールする方法を探しているのではなく、単にそれがオプションにならない理由を探しているだけです
99 None 2014-03-19
Windows のインストーラシステムがどのように動作するかについて何かを読めば、.msi
ファイル自体がデータベースであることは言うまでもなく、プログラムのインストールとメンテナンスにトランザクションデータベースのアイデアを適用していることは明らかです
データベースを設計する際には、スピードと精度・安全性のどちらを求めるかという質問が常にあります。インストーラがシステムの設定を変更できることと、誤動作でシステムが動作不能になる可能性があることを考えると、安全性は速度よりも優先されています。.msi
インストーラが遅い理由の一つは、変更されるファイルなどごとにロールバックファイルが作成され、 その後削除されるからです
例えば、別のプログラムがアンインストールされている間に .msi
を実行しようとすると、実行されないか、現在実行中のアンインストールが終了するのを待つことになります。MSI 以外のインストーラは、MSI エンジンを使用しないので、このように動作しないかもしれません。しかし、この安全設計上の決定のために、appwiz.cpl
が一度に一つのアンインストーラだけを呼び出すように主張しているのは、おそらくこれが理由でしょう
CCleaner を使うと、以前に実行していたアンインストーラが終了するのを待たずにアンインストーラを起動することができます。上記の理由で、MSI のインストーラはまだ並行して動作しない可能性が高いです
101 LawrenceC 2014-03-19
これは、Windows Installer システムを使用するプログラムにのみ適用されます
プログラムが独自の(未)インストーラーシステムを使用している場合は、別のアンインストーラーを同時に実行することを止めるものは何もありません
Windows インストーラでは、システム全体の (多くの場合共有されている) 設定やファイルを変更している間に、複数のプログラムによる競合を避けるために、インスタンスの数を制限しています
ほとんどのアンインストーラは、失敗してもロールバックできるように変更内容を追跡しています。(他のアンインストーラによる) すべての変更を把握していないと、失敗したインストールをロールバックしようとすると、実際には事態を悪化させる可能性があります
Windows Installer システムは、すべてのアプリケーション開発者が (Windows 上で) 使用するための統一されたシステムであることを意図して作成されたもので、このような問題を回避するのに役立ちます
19 Ƭᴇcʜιᴇ007 2014-03-19
アンインストールタスクは、複数のプログラムで共有されているファイルやレジストリのシステムファイルを変更することがよくあります(そのために管理者権限が必要なことも理由の一つです)。複数のアンインストールタスクが同時に実行された場合、競合する可能性があります。DLL地獄」に遭遇したことがあれば、それは同じでしょう。他のプログラムやWindows自体が矛盾した状態で放置されてしまう可能性があります
9 K.A.Monica 2014-03-19
プログラムを同時にアンインストールすることは、他に述べたような潜在的な問題があることに加えて、ほとんどメリットがありません: プログラムを順次アンインストールするよりも速くはありません。プログラムのアンインストールはディスクの IO を伴うタスクです。IO を行う複数のプログラムを実行することは、それらを順次実行するよりも速くはありません (プログラムが 2 つの別々の物理ディスクにインストールされていない限り)。実際には、2つの競合するIOタスクによってディスクキャッシュの効率が悪くなり、ディスクの物理ヘッドがあちこちにジャンプしなければならなくなるため、遅くなる可能性が高いです
-1 Niccolo M. 2014-03-20