• ベストアンサー

バッチ、vbs等でのソフトウェアをアンインストールについて

あるソフトウェアをアンインストールしたいのですが、手間がかかるためバッチ、vbs等で一括でアンインストールしたいと思います。方法を教えていただけないでしょうか。 「やりたいこと」 ・レジストリの編集(あるキーの値を変更しないとプログラムの削除ができないため) ・プログラムの追加と削除より、あるソフトウェアの削除 ・プログラムの追加と削除より、あるソフトウェアアップデートプログラムの削除 ・プログラムの追加と削除より、あるソフトウェアの関連のプログラムを削除 ※アンインストールexeは無いです コマンド、vbs共にある程度の知識はありますが、アンインストールexeのないソフトウェアの削除方法がわかりません。よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

試してはいませんが、自分ならどう試みるかを書きます。OSの提示がないので、Win XP Home と仮定。他のOSなら適宜読み替えてください。 > ※アンインストールexeは無いです これはどこで判断されたのでしょうか。 [アンインストールプログラムの確認] レジストリエディタを起動すると HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall に[プログラムの追加と削除]に登録されているアプリが見えます。その中から、削除対象のアプリを探して選択し、値の名前が『UninstallString』である行のデータに注目。 [プログラムの追加と削除]で特定のアプリの[削除]を選んだときに起動するプログラムはこれと思われます。実際に起動してみて、当たりであれば、これをスクリプトなどで呼べば良いわけです。 (例)Mozilla Firefox (2.0.0.11)であれば、UninstallString は C:\Program Files\Mozilla Firefox\uninstall\helper.exe [どのスクリプトを使うか] 私は、バッチとVBScriptとUWSCが使えますが、UWSC を採用するでしょう。確認メッセージ(y/n)の選択が処理しやすいからです。 [レジストリの編集] Windows Script Host - RegWrite メソッド http://msdn.microsoft.com/ja-jp/library/cc364417.aspx

参考URL:
http://www.microsoft.com/japan/technet/scriptcenter/resources/wmifaq.mspx#EABAE
code-i
質問者

お礼

ご回答ありがとうございました。 返信が遅れてしまい、申し訳ございませんでした。 >これはどこで判断されたのでしょうか。 スタートの該当のプログラムにアンインストーラーがなかったことと、プログラムファイル内の該当のフォルダを適当なワードで検索したところ、それらしき物がなかったため勝手にそう判断していました。 しかし、教えていただいたレジストリエディタからの確認方法で調べたところ、削除したい3つとも全てアンインストールexeがありました。 一点疑問なのが、値のデータの中に以下のようにexeがあったのですが、その後ろに「-Uninstall」とありました。 "C:\Program Files\○○○\○○○.exe" -Uninstall vbsを使用する場合、次のようになるかと思いますが、 この「-Uninstall」が何か影響しないかという事です。 Set objWshShell = WScript.CreateObject("WScript.Shell") objWshShell.Exec "C:\Program Files\○○○\○○○.exe" 他にも「-AGENT」と後ろにある物もありましたが、これは何か影響があるのかご存じないでしょうか。

その他の回答 (2)

回答No.3

No.2 です。 > vbsを使用する場合、次のようになるかと思いますが、 > この「-Uninstall」が何か影響しないかという事です。 Exec メソッドを起動するときに「-Uninstall」も指定する必要があると思われます。 「-Uninstall」の効果は、各アプリ(○○○.exe)の仕様によります。一律な答えは、困難です。 ○○○.exe の説明文書があれば、それを参照するか、実際に起動して確認することになるでしょう。 [質問内容からは逸れます] 多くのアンインストールプログラムは、対話型(確認窓が表示される)で実行されますが、起動オプション(/Silent など)を追加することで、確認窓を表示しないで実行するものもあります。アンインストールプログラムの起動オプションは、アプリ供給会社が配布している文書や、アプリ供給会社のサイトで確認されることをお勧めします。

code-i
質問者

お礼

ご回答有難うございました。 >Exec メソッドを起動するときに「-Uninstall」も指定する必要があると思われます。 3のプログラム全て、手動でアンインストールした時と同様に削除できました。ウィザードが出てくるものもありますが、手動で実施していた時と比べ便利になったかと思います。 アンインストールexeの確認方法を含め、関連する様々なことを教えていただき有難うございました。

  • iriyak
  • ベストアンサー率48% (40/82)
回答No.1

こんにちは。 > レジストリの編集(あるキーの値を変更しないとプログラムの削除ができないため) Windows Script Host (cscript.exe, wscript.exe) からレジストリ操作の指示を出すことが可能です。 運用 Windows管理者のためのWindows Script Host入門 第7回 WshShellオブジェクトの詳細(3) http://www.atmarkit.co.jp/fwin2k/operation/wsh07/wsh07_01.html > プログラムの追加と削除 回答者は操作の自動化をトライしたことがありません。 あくまで解決の糸口を提供するにとどまりますが、Windows 自動化ソフト UWSC Pro を使用して『プログラムの追加と削除』ウインドウ上のクリック可能な対象を一覧化してみたところ、良好な結果を得ました。 ソフトウェアの一覧や、現在選択されている対象の右側に表示されている『変更と削除』ボタンもクリック可能な対象として認識されているようだ、ということがわかりました。 トライ&エラーで削除操作を自動化できる可能性があります。 今すぐ解決しなければならない、ということであれば適用できるソリューションではありません。時間的にゆとりがあるときに一度お試しください。参考URLに UWSC Pro のサイトを残しておきます。

参考URL:
http://www.uwsc.info/
code-i
質問者

お礼

ご回答ありがとうございました。 返信が遅れてしまい申し訳ございませんでした。 レジストリの編集は、教えていただいたページを参考にvbsで可能になりました。 UWSCはフリーの物を使用して色々と操作してみましたが、使いこなせば他のものより勝手が良さそうに感じました。 参考にさせて頂たいと思います。

関連するQ&A

専門家に質問してみよう