Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1865
  • Last Modified:

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
0
richardstuartpowell
Asked:
richardstuartpowell
  • 2
  • 2
  • 2
1 Solution
 
RobSampsonCommented:
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

0
 
jawa29Commented:
Hi Richard

This is a question I answered before and should help to start you off.
http://www.experts-exchange.com/Programming/Languages/Scripting/Powershell/Q_26924043.html

Jawa29
0
 
richardstuartpowellAuthor Commented:
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.
0
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
jawa29Commented:
Hi Rich

The script automatically gets the domain name from the PC it is running on.

The script could take awhile to finish depending on the number of PC's in the domain. the text file isn't created until the entire script is finished. Check Task Manager to see if you have a wscript.exe or cscript.exe still running.

Jawa29
0
 
RobSampsonCommented:
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

0
 
richardstuartpowellAuthor Commented:
Superb response + excellent solution / script !

Thanks a million :-)

Rich.
0

Featured Post

Efficient way to get backups off site to Azure

This user guide provides instructions on how to deploy and configure both a StoneFly Scale Out NAS Enterprise Cloud Drive virtual machine and Veeam Cloud Connect in the Microsoft Azure Cloud.

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now