私は、WindowsサーバーへのWebsphereMQクライアント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
)
スクリプトは、新規インストールで正常に機能しています。つまり、上記のソフトウェアがまだシステムにインストールされていない場合。
ただし、このスクリプトを拡張して、WebsphereMQとそのバージョンの既存のインストールがないかシステムをチェックする必要があります。--バージョンが必要なバージョンでない場合(もちろん、コマンドラインから提供します)、アンインストールを開始する必要があります。
問題は、ファイルシステムを検索するアプローチを使用したくないということです。では、WMIクラスを使用してこのタスクを実行するにはどうすればよいですか?Win32_Productクラスを検索しましたが、インストールされているプログラムが1つしか返されませんでした(ただし、システムに40個のアプリケーションがインストールされています)。1)システムで特定のプログラムを検索する具体的な方法は何ですか。 。(私はVbScriptingまたはバッチプログラミングを受け入れています)2)インストールされたソフトウェアのレジストリキーの値はすべてのシステムで同じままですか?また、バージョンによって異なりますか?
前もって感謝します。