インストールされたMSIセットアップのプロダクトGUIDを見つけるにはどうすればよいですか?
パッチ適用、アンインストール(how-to uninstall)などのメンテナンスを行うため、また監査目的のために、インストールされたMSIファイルのproduct GUID**を見つける必要があるのですが、どうすればいいですか?
58
2
パッチ適用、アンインストール(how-to uninstall)などのメンテナンスを行うため、また監査目的のために、インストールされたMSIファイルのproduct GUID**を見つける必要があるのですが、どうすればいいですか?
アップグレードコード**の取得について。
Powershellのクイックスタート: Windows key を押しながら R をタップして "powershell" を入力して Enter Windows SDKです。Orca-x86_ja-us.msi`** - で検索してみてください。
出力はこのようなものになるはずです。 画像の説明を入力してください]7。 注意!** 不思議なことに、WMIではquot;ProductCode"はquot;IdentifyingNumber"と呼ばれています。つまり、言い換えれば、上の図では、IdentifyingNumberはProductCodeであるということです。 多くのリモート コンピュータに対してこのクエリをリモートで実行する必要がある場合*、以下の "Retrieve Product Codes From A Remote Computer*" セクションを参照してください。
この場合、出力はこのようになります。 画像の説明を入力してください]9。
リモートコンピュータからプロダクトコードを取得する
理論的には、コマンド自体の一部として、リモートコンピューター名を指定すればよいはずです。以下は、上記と同じコマンドをマシン "RemoteMachine"で実行するように設定したものです (
ComputerName RemoteMachine
セクションが追加されています)。適切なドメインでドメイン管理者権限で実行している場合、この方法は有効かもしれません。ワークグループ環境(スモールオフィス/ホームネットワーク)では、おそらくWMIコールに直接ユーザー認証情報を追加しないと動作しないでしょう。 さらに、WMIでのリモート接続は、(少なくとも)Windowsファイアウォール、DCOM設定、ユーザーアカウント制御(UAC)(さらにMicrosoft以外の要因、たとえばリアルファイアウォール、サードパーティ製ソフトウェアファイアウォール、**各種セキュリティソフトウェア***などの影響を受ける。)うまくいくかどうかは、あなたの正確な設定によります。
PowerShellでWMIにリモート接続する]11。 UPDATE:リモートWMIの実行に関する広範なセクションは、この回答で見つけることができます:https://stackoverflow.com/questions/46637094/how-can-i-find-the-upgrade-code-for-an-installed-msi-file/46637095#46637095。ワークグループのネットワーク環境では、ファイアウォールルールとレジストリの調整によるUACプロンプトの抑制で動作させることができるようです。セキュリティ上、推奨される変更ではありませんが、私の場合はうまくいきました。
代替ツール
PowerShellは、.NETフレームワークのインストールが必要です(現在バージョン3.5.1らしい?2017年10月)。また、.NETがインストールされていても、実際のPowerShellアプリケーション自体がマシンから欠落していることもあります。最後に、PowerShellは様々なシステムポリシーや権限によって無効化またはロックされる可能性があると私は思います。 このような場合、プロダクトコードを取得する他の方法をいくつか試してみてください。私がお勧めするのはVBScriptで、高速で柔軟性があります(ただし、特定のマシンではロックされることがありますし、スクリプトはツールを使用するよりも常に少し複雑です)。 1.1. Windowsに組み込まれているWMIツールから始めてみましょう。
wbemtest.exe
を使用します。wbemtest.exe
を起動します(Windowsキーを押しながらRキーを押し、Windowsキーを離し、"wbemtest"と入力してOKを押します)。WMIExplorer.exe
のようなカスタムでよりフル機能の WMI ツールを試してみることができます。SELECT IdentifyingNumber,Name,Version FROM Win32_Product
を入力し、Executeを押してください。msiinfo.csv
です。クイックパラメータの説明です。
また、必要に応じて(冗長)ログを有効にし、サイレントモードで実行することができますので、オプション2へとつながります。 オプション 2:サイレントアンインストールと冗長ロギング (バッチファイルの場合)
クイックパラメータの説明です。
MSIアンインストールに関する*包括的なリファレンスがここにあります(MSIパッケージをアンインストールする様々な異なる方法):https://stackoverflow.com/questions/450027/uninstalling-an-msi-file-from-the-command-line-without-using-msiexec/1055933#1055933。アンインストールには、たくさんの異なる方法があります。 バッチファイルを書いている場合は、上記のリンク先の回答のセクション3を見て、いくつかの一般的で標準的なアンインストールコマンドラインのバリエーションを確認してください。 また、msiexec.exe (command line options) (MSDN による msiexec.exe のコマンドラインの概要) への簡単なリンクがあります。そして、Technet版も同様に。
その他のMSIプロパティ/情報(例:アップグレードコード)の取得
レジストリまたはキャッシュされたmsiを使用してMSI情報を取得するためのいくつかのさらなるオプションがある同様の記事です。https://stackoverflow.com/questions/11251034/find-guid-from-msi-file?
類似のトピック(参照と簡単なアクセスのために - 私はこのリストをクリーンアップする必要があります)。
インストーラの数が多すぎて、探しているものが簡単に見つからない場合、フィルターを提供して表示名で少し絞り込むためのpowershellを紹介します。