Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Checking The Version fo A File Over The Network

Posted on 2004-10-06
8
Medium Priority
?
187 Views
Last Modified: 2010-04-14
Does anyone know of a good way to check the version of a file over my LAN? I have about 100 computers that all need the same version of a particular EXE file. They are all located in the same directory on every computer. Is there a program or way out there to do this easily? The main things i would need to check is the size/date/version info on the file.

Thanks
0
Comment
Question by:Mohonk
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 2
8 Comments
 
LVL 69

Expert Comment

by:Callandor
ID: 12238299
I use a product called Synchromagic that can do this: http://www.gelosoft.com/adescr.html
0
 
LVL 76

Expert Comment

by:David Lee
ID: 12242802
Here's a pretty simple script that'll do it for you.  It will loop through the names of the computers you provide in arrComputers, connect to the file specified by strPath, and return the Date Created, Size, and Version number.  The version number will only work for executables (exe, dll, ocx).  In this sample it merely displays the information about each file onscreen.  It'd be simple to modify it to write the information into a file instead.  In fact, the script could be modified to create another script or batch file that'd copy a new version to machines that needed an update.  You'd need to include a target version number to comapre against if you wanted to go that route.

To use this script all you need to do is copy and paste the script into a file with an extension of .vbs.  Then edit lines 2 and 3 to supply the names of the computers and the path to the file you want to check.  You'll need to have the required rights on the target computers for this to work.  Then run the script.

    Dim arrComputers, strPath, objFSO, objFile, intCounter
    arrComputers = Array("\\Computer1", "\\Computer2")
    strPath = "\C$\Windows\Notepad.Exe"
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    For intCounter = 0 To UBound(arrComputers)
        Set objFile = objFSO.GetFile(arrComputers(intCounter) & strPath)
        Wscript.Echo "Computer=" & arrComputers(intCounter)
        Wscript.Echo "DateCreated=" & objFile.DateCreated
        Wscript.Echo "Size=" & objFile.Size
        Wscript.Echo "Version=" & objFSO.GetFileVersion(arrComputers(intCounter) & strPath)
        Wscript.Echo ""
    Next
    Set objFile = Nothing
    Set objFSO = Nothing
0
 

Author Comment

by:Mohonk
ID: 12248528
That works very well thank you. How hard would it be to add a line to dump the information to a txt file?

Thanks!
0
Does Your Cloud Backup Use Blockchain Technology?

Blockchain technology has already revolutionized finance thanks to Bitcoin. Now it's disrupting other areas, including the realm of data protection. Learn how blockchain is now being used to authenticate backup files and keep them safe from hackers.

 
LVL 76

Expert Comment

by:David Lee
ID: 12248898
Not hard at all.  I post a revised version with that shortly.
0
 
LVL 76

Expert Comment

by:David Lee
ID: 12248905
Darn fingers!  That should be I'll not I.
0
 
LVL 76

Accepted Solution

by:
David Lee earned 1000 total points
ID: 12249997
Here you go.  This will write the output to a file in the folder the script is run from.  Change Filename.Txt to whatever file name you want to use.

Dim arrComputers, strPath, objFSO, objFile, objTS, intCounter
arrComputers = Array("\\Computer1", "\\Computer2")
strPath = "\C$\Windows\Notepad.Exe"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTS = objFSO.CreateTextFile(".\Filename.Txt", True)
For intCounter = 0 To UBound(arrComputers)
    Set objFile = objFSO.GetFile(arrComputers(intCounter) & strPath)
    objTS.WriteLine "Computer=" & arrComputers(intCounter)
    objTS.WriteLine "DateCreated=" & objFile.DateCreated
    objTS.WriteLine "Size=" & objFile.Size
    objTS.WriteLine "Version=" & objFSO.GetFileVersion(arrComputers(intCounter) & strPath)
    objTS.WriteLine ""
Next
objTS.Close
Set objTS = Nothing
Set objFile = Nothing
Set objFSO = Nothing
0
 

Author Comment

by:Mohonk
ID: 12250109
works great. thanks for the help!
0
 
LVL 76

Expert Comment

by:David Lee
ID: 12250551
Excellent.  You're welcome!
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

NTFS file system has been developed by Microsoft that is widely used by Windows NT operating system and its advanced versions. It is the mostly used over FAT file system as it provides superior features like reliability, security, storage, efficienc…
While opting for any web-to-print solution, you need to discuss with your team and some of your end users and know their opinions about your decisions. In this article we list down some questions you need to ask yourself.
In this video you will find out how to export Office 365 mailboxes using the built in eDiscovery tool. Bear in mind that although this method might be useful in some cases, using PST files as Office 365 backup is troublesome in a long run (more on t…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…

705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question