webdevqa.jp.net

msiexecを使用せずにコマンドラインからMSIファイルをアンインストールする

msiexecは、 MSI プログラムをインストールするコマンドプロンプトソフトウェアです。しかし、コマンドラインでMSIファイルの名前を入力するだけで、コマンドラインからMSIファイルをインストールできることがわかりました。

ただし、MSIファイルをアンインストールするには、msiexecプログラムを呼び出して、/xまたは/uninstallを指定する必要があるようです。

msiexecルーチンを使用せずに、コマンドラインからMSIをアンインストールするにはどうすればよいですか?

52
xarzu

簡単な答え:できません。 MSIEXEC/xを使用する

長い答え:コマンドラインでMSIファイルを直接実行すると、MSIEXECが実行されるだけです。この関連付けはレジストリに保存されます。 (Windowsエクスプローラーで)[ツール]、[フォルダーオプション]、[ファイルの種類]の順に選択すると、関連付けのリストを表示できます。

たとえば、コマンドラインから.DOCファイルを実行すると、ワードパッドまたはWinWordがそれを開きます。

HKEY_CLASSES_ROOT\.msiの下のレジストリを見ると、.MSIファイルがProgID "Msi.Package"に関連付けられていることがわかります。 HKEY_CLASSES_ROOT\Msi.Package\Shell\Open\commandを見ると、.MSIファイルを「実行」するときにWindowsが実際に使用するコマンドラインが表示されます。

47
Roger Lipscombe

また、WMICコマンドを使用してアンインストールを開始できることも忘れないでください。

wmic product get name->これは、インストールされているすべてのアプリの名前を一覧表示します

wmic product where name='myappsname' call uninstall->これにより、アプリがアンインストールされます。

31
themrnutz

msiファイル拡張子はmsiexecにマップされます(コマンドプロンプトで.txtファイル名を入力するのと同じ方法で、メモ帳/デフォルト.txtファイルハンドラーを起動してファイルを表示します)。

したがって、拡張子が.msiのファイル名を入力すると、実際にはMSIファイルを引数としてmsiexecが実行され、デフォルトアクションinstallが実行されます。そのため、アンインストールを行うには、アンインストールスイッチを使用してmsiexecを呼び出してアンインストールする必要があります。

3
Tuminoid
wmic product get name

Cmdがスタックするだけです...数分後にまだ_が点滅しています

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstallで、インストールしようとしているソフトウェア名(ProductCodeで指定された名前ではない)のフォルダーが見つかった場合、UninstallStringはアプリケーションのアンインストーラーC:\Program Files\Zune\ZuneSetup.exe /xを指します。

2
sdaffa23fdsf

私は次の構文を試してみます-それは私のために機能します。

msiexec /x filename.msi /q 
1
Tyrone