作成したアプリケーション用のMSIインストーラーがあります。インストーラーはWindows7で正常に動作します。今日、Windows 8でスモークテストを実行することにしましたが、WMIクエリで爆発しました。私のひざまずく反応は、WMIクエリに問題があるというものでしたが、数時間掘り下げて(そして追加のエラーを見つけて)、コードに関係のないシステム上の問題があると思い始めました。
私が見つけた特定のインスタンスは次のとおりです。
- WMIクエリの失敗。特定の名前空間を照会しようとしました。Windows 7と8のマシン間で名前空間のセキュリティ権限を比較しましたが、それらは同じです。WMI名前空間ACLに「INTERACTIVE」を追加すると(元々はSYSTEMとAdministratorのみが含まれていました)、8台のマシンでクエリを実行できるようになり、次の問題を見つけることができました...
- LOCAL_MACHINEでレジストリキーを開けませんでした。キーを使用したブロックをコメントアウトしたので、次の問題に進みました...
- 「プログラムファイル」でファイルを開かない
私がしたこと:
- UACは最初は完全にオフでしたが、オンにしました(完全にアップし、すべてを通知します)。
- WMI名前空間のACLをいじくり回しました
- WMIクエリで偽装を使用してみました
Windows 8のトリックが欠けていますか?
(コードはC#、. NET 4.0です)