web-dev-qa-db-ja.com

MsiInstallerがアプリケーション(EventID 1035)を継続的に再構成する原因は何ですか?

約2か月前にWindows Server 2008 Enterpriseをインストールしたばかりの新しいマシンを持っています。イベントログには、何千ものEventID 1035が記録されています。これはMsiInstallerが約12の製品を繰り返し再構成し、約30分ごとにループします。

誰かこれを見たことがありますか?初めに、私は一般的なWeb検索を行い、ほとんどのソリューションは原因としてインストールされているDell System CenterまたはGoogleツールバーを中心に展開しました。

これらの製品はどちらもインストールされていません。

ご協力いただきありがとうございます、

デール

5
user7862

[〜#〜]更新[〜#〜]


Windowsインストーラーは、インストールされているアプリケーションに対して「自己修復」を備えています。つまり、ディスク上のファイルとレジストリの設定が、それぞれのパッケージが最初にインストールしたものと一致するかどうかをチェックし続けます。これらのチェックは通常、パッケージがインストールしたすべてに対して実行されるのではなく、「キーパス」と呼ばれるものに対して実行されます。

自己修復がサイクルで実行されているの状況では、通常、システム上のいくつかのプロセスまたは別のMSIがシステム上の設定を変更し、パッケージがその後、自己修復も変更されました。男が言ったように、それは同じ部屋でそれを戦う加湿器と除湿器のようなものです-または自分の尻尾を追いかける犬。衝突が発見されて解消されるまで、どこにも行きません。 MSIファイルは「これが私のリソースです。私はそれを元に戻しています」と何度も繰り返します。

MSIファイルまたはシステムプロセスが競合している競合を特定する必要があります: http://www.installsite.org/pages/en/msifaq/a/1037.htm

MSIファイルには、ハードコードされたユーザー固有のパスに設定されたキーパスなど、同じ問題を引き起こす可能性のある他のデザインエラーもあります:C:\ Documents and settings\user1\Desktop。このパスは、ログオンしている別のユーザーには見つからず、自己修復の結果になります。もう1つの例は、Systemアカウントで書き込みできないフォルダーに設定されたキーパスです。さらに別の例は、一時ファイル(システムによって最終的に削除される)に設定されたキーパスです。

ご覧のとおり、多くのシナリオがありますが、常に同じ問題があります。MSIファイルが現在のインストールが正しいことを確認し、矛盾を見つけて修正しようとします。

4
Stein Åsmul

Win32_ProductクラスへのWMIクエリによって問題がトリガーされたことを確認できます。ただし、以下の他の質問に記載されているように、SCCM/SMSがインストールされていない場合、およびWin32reg_AddRemovePrograms64を使用して64ビットプログラムのリストを取得する必要がある場合でも、Win32reg_AddRemoveProgramsを使用することはできません。

https://stackoverflow.com/questions/2416278/64bit-equivalent-class-for-a-wmi-class-win32reg-addremoveprograms

これまでは悪いこととして、実際には適切な方法として文書化されていませんでした。マイクロソフトがクエリに応答すると同時に修復チェックを行うという選択は、単に悪い設計だと思います。クエリによってシステムが変更されることは決してなく、それは別の「関数」(WMIメソッド)である必要があります。賢明な設計では、新しいオペレーティングシステムの「システムメンテナンス」機能に定期的なチェックを含めることもできます。これは、設定も可能であり、ユーザー/管理者にとって意味があるためです。

とにかく、これは古いサーバーで、実際には廃止されようとしています(Windows 2003 64ビット)。しかし、それは何年にもわたってすべてのサーバーで発生しました(これは、パフォーマンスに大きな影響を与えたことが確認されました)。したがって、新しい2008 R2サーバーをもう一度確認して、これが継続的な運用上の問題になるかどうかを確認する必要があります。

しかし、私が本当に不思議に思うのは、パッケージャーのチームとサポートエンジニアに、そのWMIクエリ/ APIを使用してはいけないことをどのように説明できるかです。私たちは何千ものパッケージのために多くの異なる人々によって書かれた何百ものスクリプトとツールを持っています。それが起こる方法はありません。したがって、この動作は、2008 R2およびその他のサポートされているOSバージョンで引き続き発生する場合、MSによる重大な設計違反として修正する必要があります。それでも問題が解決しない場合は、エスカレーションします。

3
Tony Wall

ハード調査の結果、私は次のことを発見しました このMicrosoft KB記事 これらのメッセージは、グループポリシーフィルターによって生成される可能性があることを示していますOR Win32_Product WMIクラスをクエリするアプリケーション。残念ながら、どのアプリケーションが問題を引き起こすことは困難です。

3
tomab