I've created a script that does the following:

*All output goes to a text file*

Searches through AD finding computer objects running a Server OS(using
wildcards).
Determines the disk space free on each physical drive for each machine
found.
For each machine found searches through the System and Application Log
for all error entries in the past 8 days.

Here is the script(it's not the prettiest and I know there are better
ways/methods but here it is):

Option Explicit
Dim objFSA
Dim objLogFile
Dim objFSO
Dim objLogItem
Dim objFSF
Dim objFinalLog
Dim objFSU
Dim objLog
Const ForWriting = 2
Set objFSU = CreateObject("Scripting.FileSystemObject")
Set objLog = objFSU.CreateTextFile("C:\deletefiles.vbs")
Set objFSA = CreateObject("Scripting.FileSystemObject")
Set objLogFile = objFSA.CreateTextFile("C:\tmpSrvAvail.txt")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objLogItem = objFSO.CreateTextFile("C:\tmpAllSrv.txt")
Set objFSF = CreateObject("Scripting.FileSystemObject")
Set objFinalLog = objFSF.CreateTextFile("MasterFile.txt")
objLog.Write "Set objFSL = CreateObject(" & chr(34) &
"Scripting.FileSystemObject" & chr(34) & ")"
objLog.Write vbCrlf
objLog.Write "strScript = " & chr(34) & "C:\tmpAllSrv.txt" & chr(34)
objLog.Write vbCrlf
objLog.Write "objFSL.DeleteFile(strScript)"
objLog.Write vbCrlf
objLog.Write "Set objFSM = CreateObject(" & chr(34) &
"Scripting.FileSystemObject" & chr(34) & ")"
objLog.Write vbCrlf
objLog.Write "Set objFSN = CreateObject(" & chr(34) &
"Scripting.FileSystemObject" & chr(34) & ")"
objLog.Write vbCrlf
objLog.Write "strScript = " & chr(34) & "C:\tmpSrvAvail.txt" & chr(34)
objLog.Write vbCrlf
objLog.Write "objFSL.DeleteFile(strScript)"
objLog.Write vbCrlf
objLog.Write "strScript = Wscript.ScriptFullName"
objLog.Write vbCrlf
objLog.Write "objFSN.DeleteFile(strScript)"
objFinalLog.Write "All Servers in Active Directory"
objFinalLog.Write vbCrlf

Const ADS_SCOPE_SUBTREE = 2

Dim objConnection
Dim objCommand
Dim objRecordSet
Dim strDomain
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand = CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
strDomain = "DC=dms,DC=local"
Set objCommand.ActiveConnection = objConnection

objCommand.CommandText = _
"SELECT Name FROM 'LDAP://" & strDomain & "' WHERE
objectClass='computer' " & _
"and operatingSystem = '*Server*'"
objCommand.Properties("Page Size") = 1000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

Do Until objRecordSet.EOF
objLogItem.Write objRecordSet.Fields("Name").Value
objLogItem.Write vbCrLf
objFinalLog.Write vbCrlf
objFinalLog.Write objRecordSet.Fields("Name").Value
objRecordSet.MoveNext
Loop

objFinalLog.Write vbCrlf
objFinalLog.Write vbCrlf

objFinalLog.Write "FREE DISK SPACE"
objFinalLog.Write vbCrlf
objFinalLog.Write vbCrlf

Dim g_strHostFile
Dim objFse
Dim objTextStream
Dim objWMIService
Dim colDisks
Dim g_strComputer
Dim objDisk
Const FOR_READING = 1
g_strHostFile = "C:\tmpAllSrv.txt"
Set objFse = CreateObject("Scripting.FileSystemObject")
If objFse.FileExists(g_strHostFile) then
Set objTextStream = objFse.OpenTextFile(g_strHostFile, FOR_READING)
Else
WScript.Echo "Computer list, " & g_strHostFile & " not found."
WScript.Quit
End If
Do Until objTextStream.AtEndOfStream
g_strComputer = objTextStream.ReadLine

On Error Resume Next

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & g_strComputer & "\root
\cimv2")

Set colDisks = objWMIService.ExecQuery _
("Select * from Win32_LogicalDisk Where DriveType = 3")

If Err = 0 Then
objLogFile.Write g_strComputer
objLogFile.Write vbCrLf
End If

Dim intFreeSpace
Dim intTotalSpace
Dim pctFreeSpace
Dim intTotalGB
Dim intFree

For Each objDisk in colDisks
intFreeSpace = objDisk.FreeSpace
intTotalSpace = objDisk.Size
pctFreeSpace = intFreeSpace / intTotalSpace
If Err <> 0 Then
objFinalLog.Write g_strComputer & " is offline, please check
manually."
objFinalLog.Write vbCrLf
objFinalLog.Write vbCrLf
Exit For
End If

intTotalGB = intTotalSpace/ 1024/ 1024/ 1024
intTotalGB = FormatNumber(intTotalGB, 1) & "GB"
If intFreeSpace < 1073741824 Then
intFree = objDisk.FreeSpace/ 1024/ 1024
Else
intFree = objDisk.FreeSpace/ 1024/ 1024/ 1024
End If
If intFreeSpace < 1073741824 Then
intFree = FormatNumber(intFree, 1) & "MB"
Else
intFree = FormatNumber(intFree, 1) & "GB"
End If

objFinalLog.Write g_strComputer & " "
objFinalLog.Write objDisk.DeviceID & " "
objFinalLog.Write intFree & " Free "
objFinalLog.Write intTotalGB & " Total "
objFinalLog.Write FormatPercent(pctFreeSpace) & " Percent Free"
objFinalLog.Write vbCrLf
objFinalLog.Write vbCrLf
Next
Loop

objTextStream.Close


Dim dtmStartDate
Dim DateToCheck
Dim colLoggedEvents
Dim objEvent
g_strHostFile = "C:\tmpSrvAvail.txt"
Set objFse = CreateObject("Scripting.FileSystemObject")
If ObjFse.FileExists(g_strHostFile) Then
Set objTextStream = objFse.OpenTextFile(g_strHostFile, FOR_READING)
Else
WScript.Echo "Computer list, " & g_strHostFile & " not found."
WScript.Quit
End If

Const CONVERT_TO_LOCAL_TIME = True
Set dtmStartDate = CreateObject("WbemScripting.SWbemDateTime")
DateToCheck = CDate(Date())
dtmStartDate.SetVarDate DateToCheck - 8, CONVERT_TO_LOCAL_TIME
Do Until objTextStream.AtEndOfStream
g_strComputer = objTextStream.ReadLine

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & g_strComputer & "\root
\cimv2")

Set colLoggedEvents = objWMIService.ExecQuery ("Select * From
Win32_NTLogEvent Where LogFile = 'System' AND TimeWritten >= '" &
dtmStartDate & "' AND EventType = 1")

If Err = 0 Then
objFinalLog.Write "Error Events from System Log."
objFinalLog.Write vbCrLf
End If

For Each objEvent in colLoggedEvents
If Err <> 0 Then
Exit For
End If

objFinalLog.Write g_strComputer
objFinalLog.Write vbCrLf
objFinalLog.Write "Category: " & objEvent.Category
objFinalLog.Write vbCrLf
objFinalLog.Write "Event Code: " & objEvent.EventCode
objFinalLog.Write vbCrLf
objFinalLog.Write "Message: " & objEvent.Message
objFinalLog.Write vbCrLf
objFinalLog.Write "Record Number: " & objEvent.RecordNumber
objFinalLog.Write vbCrLf
objFinalLog.Write "Source Name: " & objEvent.SourceName
objFinalLog.Write vbCrLf
objFinalLog.Write "Event Type: " & objEvent.EventType
objFinalLog.Write vbCrLf
objFinalLog.Write "Time Written: " & objEvent.TimeWritten
objFinalLog.Write vbCrLf
objFinalLog.Write vbCrLf
Next
Loop

objTextStream.Close

objFinalLog.Write VBCrLf
objFinalLog.Write VBCrLf
objFinalLog.Write "Error Events from Application Log."

g_strHostFile = "C:\tmpSrvAvail.txt"
Set objFse = CreateObject("Scripting.FileSystemObject")
If objFse.FileExists(g_strHostFile) Then
Set objTextStream = objFse.OpenTextFile(g_strHostFile, FOR_READING)
Else
WScript.Echo "Computer list, " & g_strHostFile & " not found."
WScript.Quit
End If

Set dtmStartDate = CreateObject("WbemScripting.SWbemDateTime")
DateToCheck = CDate(Date())
dtmStartDate.SetVarDate DateToCheck - 8, CONVERT_TO_LOCAL_TIME
Do Until objTextStream.AtEndOfStream
g_strComputer = objTextStream.ReadLine

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & g_strComputer & "\root
\cimv2")

Set colLoggedEvents = objWMIService.ExecQuery ("Select * From
Win32_NTLogEvent Where LogFile = 'Application' AND TimeWritten >= '" &
dtmStartDate & "' AND EventType = 1")

For Each objEvent in colLoggedEvents
If Err <> 0 Then
Wscript.Echo "We made it here." & g_strComputer
Exit For
End If

objFinalLog.Write vbCrLf
objFinalLog.Write g_strComputer
objFinalLog.Write vbCrLf
objFinalLog.Write "Category: " & objEvent.Category
objFinalLog.Write vbCrLf
objFinalLog.Write "Event Code: " & objEvent.EventCode
objFinalLog.Write vbCrLf
objFinalLog.Write "Message: " & objEvent.Message
objFinalLog.Write vbCrLf
objFinalLog.Write "Record Number: " & objEvent.RecordNumber
objFinalLog.Write vbCrLf
objFinalLog.Write "Source Name: " & objEvent.SourceName
objFinalLog.Write "Event Type: " & objEvent.EventType
objFinalLog.Write vbCrLf
objFinalLog.Write "Time Written: " & objEvent.TimeWritten
objFinalLog.Write vbCrLf
objFinalLog.Write vbCrLf

Next
Loop
objTextStream.Close
Wscript.Echo "Job Completed, check Master File for Output."
On Error GoTo 0
Dim objShell
Dim strDelete
Set objShell = CreateObject("Wscript.Shell")
strDelete = "C:\deletefiles.vbs"
objShell.Run(strDelete)

I was having problems deleting the files I create earlier in the
script, hence the reason my script creates another one, which deletes
the files and itself.

My problem is that I need to run this is in multiple domains, for
different clients. I do not believe this script will work correctly in
a mixed environment ie running 2003 and 2000 Server OS's, which some
of our clients have.

Can someone advise me on how to get this to work in a mixed
environment? Short of running a search on the 2000 machines, then
another on the 2003 machines. Thanks.