Rob van der Woude's Scripting Pages

Software Requirements

Before installing software we often need to know if a computer meets that software's minimum requirements, like for example .NET Framework 1.1 or MDAC 2.6 or Java 1.5.

On this page, I will discuss several ways to make your scripts verify that software versions meet a required minimum.
The techniques discussed will include simple (CMD.EXE based) batch techniques, WSH/VBScript, KiXtart, and to support other OLE-aware scripting languages as well, WMI.

Several ready-to-use sample scripts are available too, as well as a Related Stuff section.

Basically, there are 5 ways to determine the version of installed software:

  1. Command line help
  2. Registry
  3. File version
  4. Program directory
  5. WMI

Command Line Help

Many command line programs will display their own version number when run with the /? or -? or -help or --help switch.
Some even have a switch to display just the version number.

CSCRIPT.EXE /?
JAVA.EXE -version
JAVA.EXE -version:1.6
KIX32.EXE /?
MDAC_TYP.EXE /?
MSIEXEC.EXE /?
NEROCMD --version
PERL.EXE -v
PSSHUTDOWN.EXE /?
REG.EXE /?
REGINA.EXE -v
ROBOCOPY.EXE /?
SBAMCommandLineScanner.exe /displayvipreversion
VER
WGET.EXE -V
WINVER.EXE

In the examples above, with the exception of MDAC_TYP, MSIEXEC and WINVER, the version number, often along with the command line help, is displayed on the command line, and thus can be "captured" using FOR /F:

FOR /F "tokens=3" %%A IN ('KIX32 /? ˆ| FIND /I "Copyright"') DO SET KixVer=%%A
FOR /F "tokens=3" %%A IN ('ROBOCOPY ˆ| FIND /I "ROBOCOPY v"') DO SET RoboVer=%%A
FOR /F "tokens=3" %%A IN ('VER') DO SET WinVer=%%A
FOR /F "tokens=3" %%A IN ('JAVA -version 2ˆ>ˆ&1 ˆ| FIND /I "java version"') DO SET JavaVer=%%A
FOR /F "tokens=7" %%A IN ('CSCRIPT /? | FINDSTR /R /I /C:"Windows Script[a-z]* Host"') DO SET WSHVer=%%A
FOR /F %%A IN ('SBAMCommandLineScanner.exe /displayvipreversion') DO SET VipreVer=%%A
Note: Consider it pure coincidence that 4 out of 6 FOR /F command examples use "tokens=3".

MDAC_TYP, MSIEXEC and WINVER are exceptions to the rule, as they will display the help and version number in a (GUI) window.
In that case, use registry values or the file version to get the product version.
See my sample scripts.

I love Java's version check:

JAVA -version:1.5 | FIND /I "Unable to locate" >NUL
IF NOT ERRORLEVEL 1 ECHO Please install Java 1.5 or later

Unfortunately, this version check fails if the decimal delimiter isn't a dot (as is the case on most Dutch computers).
In that case, or if in doubt, use the following code:

:: Modify required version if necessary
SET ReqVer=1.5
FOR /F "tokens=1,2 delims=." %%A IN ("%ReqVer%") DO (
	SET ReqMajorVer=%%A
	SET ReqMinorVer=%%B
)
FOR /F "tokens=3" %%A IN ('JAVA -version 2ˆ>ˆ&1 ˆ| FIND /I "java version"') DO (
	FOR /F "tokens=1,2 delims=." %%B IN ("%%~A") DO (
		SET JavaMajorVer=%%B
		SET JavaMinorVer=%%C
	)
)
IF %ReqMajorVer% GTR %JavaMajorVer% (
	ECHO Please install Java %ReqVer% or later
) ELSE (
	IF %ReqMinorVer% GTR %JavaMinorVer% (
		ECHO Please install Java %ReqVer% or later
	) ELSE (
		ECHO Java %ReqVer% or later is already installed
	)
)
Notes: (1) This batch code will consider version 1.11 greater and later than 1.6 (which will usually be correct).
  (2) This batch code will fail if parts of the version number include leading zeroes and the number is greater than 7 (e.g. version 1.08).

Registry

Batch Files: REG.EXE

Many programs store their version number in the registry.
Unfortunately, each manufacturer uses his/her own location for that version number, so you may have to find out this location for each individual software package.

Let's assume a fictional software package named "Fancy Software Viewer".
Now let's say you found out that this software stores its version number in the value "Version" under the "HKEY_LOCAL_MACHINE\Fancy Software Viewer" registry key.
The following command uses REG.EXE to query this particular software's version number:

REG Query "HKLM\Software\Fancy Software Viewer" /V Version

The result may look like this:

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\SOFTWARE\Fancy Software Viewer
	Version     REG_SZ  1.00.07.1024
Notes: (1) REG.EXE has changed a lot since its first implementation.
XP's REG Version 3.0 is not backwards compatible with earlier versions, so you may need to modify the query command.
Type REG Query /? for help with your REG version's command line.
  (2) To query the registry your options aren't limited to REG.EXE.
With a little more work you may also use REGEDIT.EXE.
In fact you can use any other available command or script.

Use FOR /F to store the result in a variable:

FOR /F "tokens=3" %%A IN ('REG Query "HKLM\Software\Fancy Software Viewer" /V Version') DO (
	SET Version=%%A
)

If the version is a registry key instead of a value (e.g. HKLM\Software\OpenOffice.org\OpenOffice.org\2.4\), you can use code like this:

FOR /F "tokens=5 delims=\" %%A IN ('REG Query HKLM\Software\OpenOffice.org\OpenOffice.org') DO SET OOVer=%%A
Note: This will only work if the key to be searched for is the last or only one. If it isn't, you may have to use FINDSTR.EXE to filter REG.EXE's results:
FOR /F "tokens=5 delims=\" %%A IN (
	'REG Query HKLM\Software\OpenOffice.org\OpenOffice.org ˆ| FINDSTR /R /B /C:"[0-9][0-9]*\.[0-9]'
) DO SET OOVer=%%A

Some limitations apply to any type of version check in batch files: comparisons are string based, not numerical, and batch math can handle integers only. Literal/specific version checks are simple, checking if a version is greater than a specified minimum may become quite complicated.

Where to find software versions in the registry

This list is by no means complete, and never will be.

As you may notice in the list below, some software (Adobe, AVG, Windows Media Player, .NET Framework) needs to be queried for each possible version (or enumerated), others (Mouseware, Flash, DirectX) return their current version in a fixed registry location.

Vendor Software Registry Key Value Type
Adobe Adobe Reader HKLM\SOFTWARE\Adobe\Acrobat Reader <version> RegKey
Ahead Nero Burning Rom 1.0 HKLM\SOFTWARE\Ahead\Nero - Burning Rom\1.0   RegKey
Ahead Nero Burning Rom (8) HKLM\SOFTWARE\Nero\Shared\NeroAPIVersion <version> RegValue
Apple QuickTime Viewer HKLM\SOFTWARE\Apple Computer, Inc.\QuickTime\WinVersion 0xppqqrrss
(version p.q.r)
REG_DWORD
Canon Digital Photo Professional (DPP) HKLM\SOFTWARE\Canon\DPP\InstVersion_forUIW <version> REG_SZ
Corel WordPerfect Suite HKLM\SOFTWARE\Corel\WordPerfect Suite <version> RegKey
Foxit Software Foxit Reader HKLM\SOFTWARE\Foxit Software\Foxit Reader\Version <version> REG_SZ
Grisoft AVG 8 HKLM\SOFTWARE\AVG\AVG8   RegKey
Logitech Mouseware HKLM\SOFTWARE\Logitech\MouseWare\CurrentVersion\Setup\ProductID <version> REG_SZ
Logitech SetPoint HKLM\SOFTWARE\Logitech\setpoint\CurrentVersion\Setup\Version <version> REG_SZ
MacroMedia Flash HKLM\SOFTWARE\Macromedia\FlashPlayer\CurrentVersion <version> REG_SZ
Microsoft .NET Framework 1.0 HKLM\SOFTWARE\Microsoft\.NETFramework\policy\v1.0\3705 3321-3705 REG_SZ
Microsoft .NET Framework 1.0 SP
(Windows Media Center or XP Tablet Edition)
HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{FDC11A6F-17D1-48f9-9EA3-9051954BAA24}\Version <n,n,nnnn,SP> REG_SZ
Microsoft .NET Framework 1.0 SP HKLM\SOFTWARE\Microsoft\Active Setup\Installed Components\{78705f0d-e8db-4b2d-8193-982bdda15ecd}\Version <n,n,nnnn,SP> REG_SZ
Microsoft .NET Framework 1.1 HKLM\SOFTWARE\Microsoft\.NETFramework\policy\v1.1\4322 3706-4322 REG_SZ
Microsoft .NET Framework 1.1 HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322\Install 1 REG_DWORD
Microsoft .NET Framework 1.1 SP HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v1.1.4322\SP <SP version> REG_DWORD
Microsoft .NET Framework 2.0 HKLM\SOFTWARE\Microsoft\.NETFramework\policy\v2.0\50727 50727-50727 REG_SZ
Microsoft .NET Framework 2.0 HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727\Install 1 REG_DWORD
Microsoft .NET Framework 2.0 SP HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v2.0.50727\SP <SP version> REG_DWORD
Microsoft .NET Framework 3.0 Core HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\InstallSuccess 1 REG_DWORD
Microsoft .NET Framework 3.0 Core HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Version <version> REG_SZ
Microsoft .NET Framework 3.0 Windows Communication Foundation HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Communication Foundation\InstallSuccess 1 REG_DWORD
Microsoft .NET Framework 3.0 Windows Communication Foundation HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Communication Foundation\Version <version> REG_SZ
Microsoft .NET Framework 3.0 Windows Presentation Foundation HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Presentation Foundation\InstallSuccess 1 REG_DWORD
Microsoft .NET Framework 3.0 Windows Presentation Foundation HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Presentation Foundation\Version <version> REG_SZ
Microsoft .NET Framework 3.0 Windows Workflow Foundation HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Workflow Foundation\InstallSuccess 1 REG_DWORD
Microsoft .NET Framework 3.0 Windows Workflow Foundation HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup\Windows Workflow Foundation\Version <version> REG_SZ
Microsoft .NET Framework 3.5 HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\Install 1 REG_DWORD
Microsoft .NET Framework 3.5 SP HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5\SP <SP version> REG_DWORD
Microsoft .NET Framework 4 HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Version <version> REG_SZ
Microsoft .NET Framework 4 Client HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client\Version <version> REG_SZ
Microsoft Data Access (MDAC) HKLM\SOFTWARE\Microsoft\DataAccess\FullInstallVer <version> REG_SZ
Microsoft DirectX HKLM\SOFTWARE\Microsoft\DirectX\Version <version> REG_SZ
Microsoft Internet Explorer HKLM\SOFTWARE\Microsoft\Internet Explorer\Version <version> REG_SZ
Microsoft Office HKLM\SOFTWARE\Microsoft\Office <version> RegKey
Microsoft Office 2007 HKLM\SOFTWARE\Microsoft\Office\12.0\Common\ProductVersion\LastProduct <version> REG_SZ
Microsoft SilverLight HKLM\SOFTWARE\Microsoft\Silverlight\Version <version> REG_SZ
Microsoft Windows Media Player HKLM\SOFTWARE\Microsoft\MediaPlayer\PlayerUpgrade\PlayerVersion <version> REG_SZ
Microsoft Windows Media Player HKLM\SOFTWARE\Microsoft\MediaPlayer\Setup\Installed Versions\wmplayer.exe 00 00 nn pp qq rr ss tt
(version n.p.ts.rq)
REG_BINARY
Microsoft Windows Media Player 9 HKLM\SOFTWARE\Microsoft\MediaPlayer\9.0\Registration\UDBVersion <version> REG_SZ
Microsoft Windows Media Player 11 HKLM\SOFTWARE\Microsoft\MediaPlayer\11.0\Registration\UDBVersion <version> REG_SZ
Microsoft Windows Script Debugger HKLM\SOFTWARE\Microsoft\ScrptDbg\InstallDir <location> REG_SZ
Microsoft Windows SDK HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\CurrentVersion
HKLM\Software\Microsoft\Microsoft SDKs\Windows\ProductVersion
<version>
<version>
REG_SZ
Microsoft Windows (NT 4 and later) HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\CurrentVersion
HKLM\Software\Microsoft\Windows NT\CurrentVersion\CurrentBuildNumber
HKLM\Software\Microsoft\Windows NT\CurrentVersion\CSDVersion
<version>
<build>
<SP version>
REG_SZ
Mozilla Mozilla Firefox HKLM\SOFTWARE\Mozilla\Mozilla Firefox\CurrentVersion <version> REG_SZ
Mozilla Mozilla Sunbird HKLM\SOFTWARE\Mozilla\Mozilla Sunbird\CurrentVersion <version> REG_SZ
Mozilla Mozilla Thunderbird HKLM\SOFTWARE\Mozilla\Mozilla Thunderbird\CurrentVersion <version> REG_SZ
Nokia PC Suite HKLM\SOFTWARE\Nokia\PCSuiteBuildNumber <version> REG_SZ
OpenOffice.org OpenOffice HKLM\SOFTWARE\OpenOffice.org\OpenOffice.org <version> RegKey
PHP PHP HKLM\SOFTWARE\PHP\Version <version> REG_SZ
RealNetworks RealPlayer HKLM\SOFTWARE\RealNetworks\RealPlayer\version <version> REG_SZ
Sun/JavaSoft Java Runtime HKLM\SOFTWARE\JavaSoft\Java Runtime Environment\CurrentVersion
HKLM\Software\JavaSoft\Java Runtime Environment\BrowserJavaVersion
<version> REG_SZ
Sunbelt CounterSpy HKLM\SOFTWARE\Sunbelt Software\CounterSpy\Version <version> REG_SZ
Sunbelt VIPRE Antivirus + Antispyware HKLM\SOFTWARE\Sunbelt Software\VIPRE Antivirus + Antispyware\Version <version> REG_SZ
Sunbelt VIPRE Antivirus Premium HKLM\SOFTWARE\Sunbelt Software\VIPRE Antivirus Premium\Version <version> REG_SZ

.NET Framework registry locations courtesy Scott Dorman.

File Version

Batch Files: FILEVER.EXE

FILEVER.EXE is a Windows Support Tool, which means it is located on the Windows 2000 and XP installation CD-ROMs, but isn't installed by default.
To install the Windows Support Tools, navigate to the \SUPPORT\ folder on your Windows CD-ROM and run SETUP.EXE, or download and install it from microsoft.com.
Unfortunately, it is no longer available in Windows 7, but the XP version still works, even on Windows 7 64bit.

Try the command: FILEVER %windir%\system32\msiexec.exe and you should get output not unlike this:

--a-- W32i   APP ENU  5.0.7601.17514 shp     73,216 11-20-2010 msiexec.exe

Using the /V switch will return more details:

--a-- W32i   APP ENU  5.0.7601.17514 shp     73,216 11-20-2010 msiexec.exe
        Language        0x0409 (English (United States))
        CharSet         0x04b0 Unicode
        OleSelfRegister Disabled
        CompanyName     Microsoft Corporation
        FileDescription Windows® installer
        InternalName    msiexec
        OriginalFilenam msiexec.exe
        ProductName     Windows Installer - Unicode
        ProductVersion  5.0.7601.17514
        FileVersion     5.0.7601.17514 (win7sp1_rtm.101119-1850)
        LegalCopyright  © Microsoft Corporation. All rights reserved.

        VS_FIXEDFILEINFO:
        Signature:      feef04bd
        Struc Ver:      00010000
        FileVer:        00050000:1db1446a (5.0:7601.17514)
        ProdVer:        00050000:1db1446a (5.0:7601.17514)
        FlagMask:       0000003f
        Flags:          00000000
        OS:             00040004 NT Win32
        FileType:       00000001 App
        SubType:        00000000
        FileDate:       00000000:00000000

FILEVER.EXE doesn't use return codes, so you cannot use it by itself to check if a file is available. But we'll always have FIND.EXE and FINDSTR.EXE:

FILEVER %windir%\system32\msiexec.exe | FIND /I "msiexec.exe"
IF ERRORLEVEL 1 ECHO MSIEXEC.EXE wasn't found

To get the file version in an environment variable, use the following code:

FOR /F "tokens=5" %%A IN ('FILEVER %windir%\system32\msiexec.exe') DO SET FileVer=%%A

or for the product version:

PUSHD %windir%\system32
FOR /F "tokens=2" %%A IN ('FILEVER msiexec.exe /V ˆ| FIND /I "ProductVersion"') DO (
	SET ProdVer=%%A
)
POPD
Note: The last command was split into multiple lines to make it fit in the browser window. You can use a "one-liner" if you want to.

Because Windows batch files math is limited to integers, it will be complicated to use FILEVER to compare file versions. Using FIND and FINDSTR it is possible to check for an exact version match, but not for a minimum version.
The following code may work for a while, but will fail when Windows Installer (MSIEXEC) version 4.0 arrives:

FILEVER %windir%\system32\msiexec.exe | FINDSTR /R /C:" 3\.[1-9][0-9]*\.[0-9]" >NUL
IF ERRORLEVEL 1 ECHO Windows Installer version is less than 3.1

Adding a correction for 4.0.0 and later versions:

FILEVER %windir%\system32\msiexec.exe | FINDSTR /R /C:" 3\.[1-9][0-9]*\.[0-9]" >NUL
IF ERRORLEVEL 1 (
	FILEVER %windir%\system32\msiexec.exe | FINDSTR /R /C:" [4-9]\.[0-9][0-9]*\.[0-9]" >NUL
	IF ERRORLEVEL 1 ECHO Windows Installer version is less than 3.1
)

This code will work from versions 3.1.0 through 9.9999... and fail for versions 10.0.0 and later or on leading zeroes (because the comparison is string based, not numerical).

Adding another correction for 10.0.0 and later versions:

FILEVER %windir%\system32\msiexec.exe | FINDSTR /R /C:" 3\.[1-9][0-9]*\.[0-9]" >NUL
IF ERRORLEVEL 1 (
	FILEVER %windir%\system32\msiexec.exe | FINDSTR /R /C:" [4-9]\.[0-9][0-9]*\.[0-9]" >NUL
	IF ERRORLEVEL 1 (
		FILEVER %windir%\system32\msiexec.exe | FINDSTR /R /C:" [1-9][0-9][0-9]*\.[0-9][0-9]*\.[0-9]" >NUL
		IF ERRORLEVEL 1 ECHO Windows Installer version is less than 3.1
	)
)

This code will work for versions 3.1.0 and later.
It would fail on leading zeroes because the comparison is string based, not numerical.

WSH/VBScript: GetFileVersion( )

In VBScript (and JScript or any other WSH aware scripting language), GetFileVersion( ) is a method (function) available for the FileSystemObject.
The following example displays the Windows Installer version:

Set objFSO = CreateObject( "Scripting.FileSystemObject" )
strFileVer = objFSO.GetFileVersion( "C:\WINDOWS\System32\msiexec.exe" )
WScript.Echo strFileVer

The biggest advantage of VBScript over batch is the math: VBScript handles real numbers just as well as integers, whereas batch files can only handle integers.
For version numbers with multiple dots, use the Split( ) function to store the components of the version number in an array.

The following example accepts a version number on the command line, compares the actual version with the specified version, and returns a return code 1 if the actual version is older:

If WScript.Arguments.Unnamed.Count = 1 Then
	arrReq = Split( WScript.Arguments.Unnamed(0), "." )
End If

' Create the required File System Object
Set objFSO   = CreateObject( "Scripting.FileSystemObject" )

' Get and display MSIEXEC.EXE's file version
strVersion = objFSO.GetFileVersion( "C:\WINDOWS\System32\msiexec.exe" )
WScript.Echo strVersion

' Compare it to the required minimum, if specified
If WScript.Arguments.Unnamed.Count = 1 Then
	arrCur = Split( strVersion, "." )
	intChk = UBound( arrCur )
	If intChk > UBound( arrReq ) Then intReq = UBound( arrReq )
	For i = 0 To intChk
		If CInt( arrCur(i) ) <  CInt( arrReq(i) ) Then intRC = 1
		If CInt( arrCur(i) ) <> CInt( arrReq(i) ) Then Exit For
	Next
End If

' Return the result as a return code
WScript.Quit intRC

This code is not complete, it is for demonstration purposes only.
The full code is available as WININVER.VBS from the examples:

KiXtart: GetFileVersion( )

KiXtart's GetFileVersion can be used like VBScript's:

$MsiExecVer = GetFileVersion( "%windir%\system32\msiexec.exe" )

Like FILEVER.EXE, you can also ask for more details using an optional second argument:

$MsiExecProdVer = GetFileVersion( "%windir%\system32\msiexec.exe", "ProductVersion" )

For more details see the KiXtart.org's GetFileVersion reference page.

KiXtart being a real scripting language, you can use its Split( ) function to store the individual "components" of a version number in an array, and compare it to a required minimum version, just like we did in VBScript.

Program Directories

Most programs use a default directory where they store their program files. Some offer a choice at install time, others don't. Some use the program version in their install directory, others don't.

For the ones that don't offer a choice of install directory and do use their program version in the install directory name, you can check if a file is installed by checking if the directory exists.

Or, actually, if it ever has been installed. Many programs don't remove their install directory when removed.

Generally I would not recommend this detection method, with the possible exception of the .NET Framework versions: there is little chance that these will have been uninstalled, and the alternative detection methods are different for almost every version.

My own NETFxVer.bat uses the program directories to detect the installed .NET Framework versions.

WMI

Use WMI's "Win32_Product" class to find out software versions, as is demonstrated in the following VBScript code:

strProd = "Windows Installer SDK"
strQry = "SELECT Version FROM Win32_Product WHERE Name LIKE '" & strProd & " %'"

Set objWMIService = GetObject( "winmgmts://./root/CIMV2" )
Set colItems = objWMIService.ExecQuery( strQry, "WQL", 48 )

For Each objItem In colItems
	WScript.Echo objItem.Version
Next

In Windows XP batch files you can also use WMIC.EXE:

WMIC Path Win32_Product Get Name,Version | FINDSTR /R /I /C:".NET [a-z]* *Framework [1-9]"

Advantages are:

Disadvantages are:

Sample Scripts

💾 Click the floppy disk icons to download the ZIPped sources

 

💾 Name Description Technique Remarks
💾 AVG8Ver.bat Display any computer's AVG8 AntiVirus program and virus definitions versions Registry & File Version & Read Log File Requires FILEVER.EXE from one of the Resource Kits, and REG.EXE version 3.0 (native in XP)
💾 CompareVersions.bat Compare 2 version strings digit by digit File Version Can even compare version strings with different number of digits (e.g. 10.0 vs 10.0.0.1).
💾 dNFxVer.bat List the installed .NET Framework versions Registry Requires my GetUnIns.vbs script!
Sorry, for Windows 2000 and XP only.
Works for all .NET Framework versions so far.
You may want to use NETFxVer.bat instead: it is much faster and doesn't require GetUnIns.vbs.
💾 FileDiff.vbs Check if 2 files differ in size, timestamp or version File Version & Attributes Version check will work for program files only (DLL, EXE, OCX, etcetera).
💾 HotFixes.bat
HotFixes.kix
HotFixes.vbs
List installed hotfixes for any WMI enabled computer on the network Registry
Registry
WMI
Based entirely on a (now no longer available) sample script from Microsoft echNet Script Center.
💾 LstOffVw.bat
LstOffVw.vbs
Display the currently installed Office Viewers and their version numbers File Version
WMI
The batch file uses FILEVER.EXE and runs for 8 seconds on my computer, the VBScript version uses WMI and runs 78 seconds on the same system.
💾 ListSDKs.bat Display the currently installed Microsoft SDKs and their version numbers, or display the version of a specified SDK Registry  
💾 MDACVer.kix
MDACVer.vbs
Display the currently installed MDAC version, and optionally check if it meets a required minimum version COM
COM
 
💾 NETFxVer.bat List the installed .NET Framework versions Install Directory Uses the install directory names to detect which versions are installed.
💾 OffVer.vbs List version/build numbers for all Office programs COM Tested only with MS-Office 2007 SP2 in Windows XP Professional SP3.
💾 SAVVer.bat Display any computer's Symantec AntiVirus program and virus definitions versions File Version Tested with Symantec Endpoint Protection 11 "basic", MR2 & MR3.
This batch file can be rather slow because it searches the entire "C:\Program Files" tree for the Symantec virus scanner executable.
💾 SecStat.bat
SecStat.kix
SecStat.vbs
Display a SecurityCenter status overview for any computer WMI Requires Windows XP SP2 or later.
Use WBEMTEST.EXE to find all properties for a specific AntiVirus or Firewall product.
💾 SkypeVer.vbs Display installed Skype software version COM  
💾 VipreVer.bat Display any computer's Vipre AntiVirus program and virus definitions versions Command Line Help  
💾 W2KHotFixes.kix Check if the specified Windows 2000 hotfixes have been installed Registry Uses an external ASCII file (W2KHotFixes.lst) to list the hotfixes to be checked.
💾 WinInVer.vbs Display the currently installed Windows Installer version, and optionally check if it meets a required minimum version File Version  
💾 WSHVer.vbs Display the currently installed Windows Script Host version, and optionally check if it meets a required minimum version COM  

page last modified: 2022-10-23; loaded in 0.0022 seconds