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:
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). |
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.
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.
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.
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'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.
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.
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:
💾 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