WindowsサーバにWebsphere MQクライアント32ビットのサイレントインストールを最初に開始するスクリプトを作成する作業が行われました。このスクリプトは、新規インストールのために正常に動作して既にインストールされているプログラムとそのバージョンのシステムを確認するスクリプト
@echo off
REM Author : Akshay Sinha
REM Date Created : 07/05/2012
REM Installing Websphere MQ.......
Msiexec /q /i "%CD%\MSI\IBM WebSphere MQ.msi" /l*v .\install.log /m mif_file TRANSFORMS="1033.mst" AGREETOLICENSE="yes"
echo Script to check if the installation failed !!!
echo Waiting for installaion to complete.......
REM Script will wait for 2 mins, This is to ensure that install.log gets fully generated.
ping 123.45.67.89 -n 1 -w 120000 > nul
echo Wait Over
find /C "Installation operation failed" "%CD%"\install.log > tmp.log
for /f "tokens=1,2,3 delims=:" %%a in (tmp.log) DO (
SET /a FOUND_STR=%%c
echo %FOUND_STR%
)
del tmp.log
SET %FOUND_STR%=%FOUND_STR: =%
echo %FOUND_STR%
if %FOUND_STR% EQU 0 (
echo Installation Of MQ completed without any errors!!!!!
EXIT /B 0
)
if %FOUND_STR% GTR 0 (
echo There were errors while installing MQ.. Pls Verify!!!
EXIT /B 1
)
:インストールが成功したかどうかをチェック..... は、だから私は、次のスクリプトを書きました。つまり、既に述べたソフトウェアがシステムにインストールされていない場合です。
しかし、このスクリプトを拡張して、Websphere MQとそのバージョンの既存のインストールを確認する必要があります。 - バージョンが私たちが必要とするバージョンでない場合(もちろん、コマンドラインから提供します)、アンインストールを開始する必要があります。
問題は、ファイルシステムを検索するアプローチを使用したくないということです。 WMIクラスを使用してこのタスクをどのように達成できますか?私はWin32_Productクラスを調べましたが、インストールされているプログラムは1つしか返しませんでしたが(私のシステムには40個のアプリケーションがインストールされていましたが)、私に知りたいのですが: 1)特定のプログラムをシステム(私はVbScriptingまたはバッチプログラミングにオープンしています) 2)インストールされたソフトウェアのレジストリキーの値は、すべてのシステムで同じであり、異なるバージョンで異なりますか?
ありがとうございます。
+1完全な問題の説明+ –