You could do something like this:
Dim objFSO, objComponentsTextFile, objComputersTextFile, objWMIService, strComputer, StrOutput
Dim computerArray(), softwareArray, x
x = 0
Redim computerArray(x)
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objComponentsTextFile = objFSO.OpenTextFile ("C:\Windows_Live_Components.txt", 1)
Set objComputersTextFile = objFSO.OpenTextFile ("C:\Computers.txt", 1)
Do Until objComputersTextFile.AtEndOfStream
computerArray(x) = objComputersTextFile.ReadLine
x = x + 1
Redim Preserve computerArray(x)
Loop
x = 0
softwareArray = Split(objComponentsTextFile.ReadLine, ",")
For Each computer in computerArray
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & computer & "\root\cimv2")
StrOutput = "Uninstalled the following Software:- "
For Each software in softwareArray
Set colSoftware = objWMIService.ExecQuery ("Select * from Win32_Product Where Name = " & Chr(34) & software & Chr(34) )
objSoftware.Uninstall()
strOutput = strOutput & vbCrLf & objsoftware.Name
Next
WScript.Echo strOutput
Next
This loads the data from your text files into arrays then loops on the arrays. I think you previously had an issue with a text stream getting at the AtTheEndOfStream
and not going back and forth, which would explain why it'd process only the first computer.