Okay, I've now ran this on a dozen computers and they all responded except for 1 which I put in a bogus name on purpose in the middle.

Please run this and then post back on the board the output so I can see what's going on.

Remember, only run this script, nothing you've added/modified before. Also make sure the text file of the computer names is new and created with something like NOTEPAD or other normal ASCII Editor and not something like MS Word, Wordpad, or Wordperfect.


Break On
Dim $SO
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
$SO=SetOption('NoMacrosInStrings','On')

Dim $sComputers,$sComputer,$Details,$Detail
Dim $Alive,$WMIOkay
$sComputers = ReadFile(@ScriptDir+'\'+'computer_list.txt')
'Reading computer list: ' + ' ::Error results: ' +@ERROR + ' ' +@SERROR ?
For Each $sComputer In $sComputers
If $sComputer
'Computer ' + $sComputer + ' found ' + ' ::Error results: ' +@ERROR + ' ' +@SERROR ?
$Alive = Ping($sComputer)
'pinging ' + $sComputer + + ' ::Error results: ' +@ERROR + ' ' +@SERROR ?
If $Alive
'Computer ' $sComputer + ' responded to ping ' + ' ::Error results: ' +@ERROR + ' ' +@SERROR ?
$WMIOkay = ConfirmWMI($sComputer)
'Checking WMI on ' + $sComputer + ' ::Error results: ' +@ERROR + ' ' +@SERROR ?
If $WMIOkay
'WMI appears to be responding for ' + $sComputer + ' ::Error results: ' +@ERROR + ' ' +@SERROR ?
$Details = GetBIOSInfo($sComputer)
'Checking BIOS for ' + $sComputer + ' ::Error results: ' +@ERROR + ' ' +@SERROR ?
For Each $Detail In $Details
'BIOS for ' +$sComputer +': ' + $Detail + ' ::Error results: ' +@ERROR + ' ' +@SERROR ?
Next
EndIf
EndIf
EndIf
??
Next


Function GetBIOSInfo(optional $sComputer)
Dim $WMIService,$BIOSItems,$BIOSName,$BIOSVersion,$SMBIOSVersion
Dim $Item, $SerialNumber, $Manufacturer, $BIOSArray[4]
$sComputer=IIf(Not $sComputer,'','\\'+Join(Split($sComputer,'\'),'',3)+'\')
$WMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!"+$sComputer+'root\cimv2')
$BIOSItems = $WMIService.ExecQuery("Select * from Win32_BIOS where PrimaryBIOS = true", , 48 )
For Each $Item in $BIOSItems
$BIOSName = Trim($Item.Name)
$BIOSVersion = Trim($Item.Version)
$SMBIOSVersion = Trim($Item.SMBIOSBIOSVersion)
$SerialNumber = Trim($Item.SerialNumber)
$Manufacturer = Trim($Item.Manufacturer)
Next
$BIOSArray[0]=$BIOSName $BIOSArray[1]=$BIOSVersion $BIOSArray[2]=$SMBIOSVersion $BIOSArray[3]=$SerialNumber
$BIOSArray[4]=$Manufacturer
$GetBIOSInfo=$BIOSArray
EndFunction

Function ReadFile($file)
Dim $lf, $f, $_, $t
$lf=CHR(10)
$f=FreeFileHandle
$_=Open($f,$file)
If @ERROR Exit @ERROR EndIf
Do $t=$t+$lf+ReadLine($f) Until @ERROR
$_=Close($f)
$ReadFile=Split(SubStr($t,2),$lf)
EndFunction

Function Ping($PC)
Shell'%comspec% /c ping -n 1 '+$PC+' >nul'
$Ping = NOT @ERROR
EndFunction

Function ConfirmWMI(optional $sComputer)
Dim $objWMIService,$objWMISetting,$colWMISettings
$sComputer=IIf(Not $sComputer,'','\\'+Join(Split($sComputer,'\'),'',3)+'\')
$objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!"+$sComputer+'root\cimv2')
If @ERROR
$ConfirmWMI = Val("&"+Right(DecToHex(@ERROR),4))
Exit $ConfirmWMI
EndIf
$colWMISettings = $objWMIService.ExecQuery("Select * from Win32_WMISetting")
For Each $objWMISetting In $colWMISettings
$ConfirmWMI = $objWMISetting.BuildVersion
Next
Exit $ConfirmWMI
EndFunction