Link to home
Start Free TrialLog in
Avatar of richardstuartpowell
richardstuartpowellFlag for United Kingdom of Great Britain and Northern Ireland

asked on

Audit all domain computers for browser version

Hi,

I need to check all of the computers in our domain and create a report that lists each workstation and the version of internet explorer they have installed on them (or if they have a different web browser installed).  This should be relatively straightforward but I have been searching the internet for days and I can't find any way to achieve this.

NB: All workstations running Windows XP - domain is W2K3 with approx. 200 computers.

Please help - this is urgent!

Richard Powell
Avatar of RobSampson
RobSampson
Flag of Australia image

Hi Richard,

As far as getting the version of IE goes, this should do it.  As for determining other browsers, that's more difficult because there's so many.....

Regards,

Rob.
Set objFSO = CreateObject("Scripting.FileSystemObject")
Const intForReading = 1
strComputersFile = "computers.txt"
strOutputFile = "FileVersionLog.txt"
strFileToFind = "C:\Program Files\Internet Explorer\iexplore.exe"
Set objComputers = objFSO.OpenTextFile(strComputersFile, intForReading, False)
Set objLogFile = objFSO.CreateTextFile(strOutputFile, True)
objLogFile.WriteLine "Script run at " & Now & VbCrLf
While Not objComputers.AtEndOfStream
	strComputer = objComputers.ReadLine
	strVersion = ""
	If Ping(strComputer) = True Then
		strUNCFile = "\\" & strComputer & "\" & Replace(strFileToFind, ":", "$")
		If objFSO.FileExists(strUNCFile) = True Then
			strVersion = objFSO.GetFileVersion(strUNCFile)
			objLogFile.WriteLine strComputer & vbTab & strVersion
		Else
			objLogFile.WriteLine strComputer & vbTab & "File not found"
		End If
	Else
		objLogFile.WriteLine strComputer & vbTab & "Unreachable"
	End If
Wend
objComputers.Close
MsgBox "Done"
 
Function Ping(strComputer)
	Dim objShell, boolCode
	Set objShell = CreateObject("WScript.Shell")
	boolCode = objShell.Run("Ping -n 1 -w 300 " & strComputer, 0, True)
	If boolCode = 0 Then
		Ping = True
	Else
		Ping = False
	End If
End Function

Open in new window

Avatar of richardstuartpowell

ASKER

Hi jawa29

I've looked at your script but I'm not 100% sure how to use it.

Can you send me the finished script to scan all of the computers in a domain called iems.toytown.com please?

When I run the script I just get the black DOS window with no messages whatsoever - it just sits there and it's not creating the text file (Set oTextFile = oFSO.OpenTextFile("C:\IE_Version_Results.csv", ForWriting, True) either - do I just need to wait a while?

Rich.
ASKER CERTIFIED SOLUTION
Avatar of jawa29
jawa29
Flag of United Kingdom of Great Britain and Northern Ireland image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
My script requires that you have all of your domain computers (or ones you want to scan) in a file called computers.txt.  If you don't have that already, use this code to dump all computers to a file.

Regards,

Rob.
Set objFSO = CreateObject("Scripting.FileSystemObject")
'Set objRootDSE = GetObject("LDAP://RootDSE")
'strRootDSE = objRootDSE.Get("configurationNamingContext")
Set objNetwork = CreateObject("WScript.Network")
Set objComputers = GetObject("WinNT://" & objNetwork.UserDomain)
objComputers.Filter = Array("Computer")
Set objOutputFile = objFSO.CreateTextFile("computers.txt", True)
For Each objComputer In objComputers
	objOutputFile.WriteLine objComputer.Name
Next
objOutputFile.Close
Set objOutputFile = Nothing
MsgBox "Done"

Open in new window

Superb response + excellent solution / script !

Thanks a million :-)

Rich.