Did you know that you don't need WMI for that?
(Unless there's a problem using FSO across a network.
I've never tried that.)
-------------------
Set FSO = CreateObject("Scripting.FileSystemObject")
S = FSO.GetFileVersion("c:\windows\system32\setup.exe")
-------------------
If you want to show it all in one msgbox you can
use a variable to concatenate the values as you collect
them. Instead of using WScript.echo with each machine,
you can do something like this:
Dim sVer
Set colFiles = objWMIService.ExecQuery _
("Select * from CIM_Datafile Where Name =
'c:\\windows\\system32\\setup.exe'")
For Each objFile in colFiles
sVer = sVer & strComputer & " - " & objFile.Version & vbcrlf
Next
Do the same for each machine. Then at the end
you can show one window with:
MsgBox sVer
The window will show a list like:
Server1 - 1.055
Server2 - 1.055
Server3 - 1.061
>
> I found this script on Scripting Guy. However I would like for the window to
> have the results of three file versions. Here's what I have now. It shows in
> three seperate windows one at a time:
>
> strComputer = "Server1"
>
> Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
>
> Set colFiles = objWMIService.ExecQuery _
> ("Select * from CIM_Datafile Where Name =
> 'c:\\windows\\system32\\setup.exe'")
>
> For Each objFile in colFiles
> Wscript.Echo objFile.Version
> Next
>
> strComputer = "Server2"
>
> Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
>
> Set colFiles = objWMIService.ExecQuery _
> ("Select * from CIM_Datafile Where Name =
> 'c:\\windows\\system32\\setup.exe'")
>
> For Each objFile in colFiles
> Wscript.Echo objFile.Version
> Next
>
> strComputer = "Server3"
>
> Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
>
> Set colFiles = objWMIService.ExecQuery _
> ("Select * from CIM_Datafile Where Name =
> 'c:\\windows\\system32\\setup.exe'")
>
> For Each objFile in colFiles
> Wscript.Echo objFile.Version
> Next
>
>