NTDOC
Administrator
Registered: 2000-07-28
Posts: 11634
Loc: CA
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