Currently, there are around 20-30 computers into which I dial on a regular basis. I am currently using HyperTerminal on Windows XP SP3 to do this. Once my computer connects to the other computer, I get a string printout of some information which I manually eyeball and type into Excel.
While it works well for manual connections, it's a tedious process that I feel should be automated. I'm doing it once a week, now, because it's so laborious (usually 30-40 minutes per), but ideally I'd like to have it run as a scheduled task every day. However, HyperTerminal doesn't seem to offer any scripting capabilities. Furthermore, I tried using the session logging feature and it doesn't seem to work reliably that well.
Is there some way, perhaps using a batch or VBS or PowerShell script, that I could sequentially dial a series of computers, and then automatically log the terminal output to a text file, timestamped?
The added caveat is I also need to be able to handle exceptions, e.g. if the computer is busy. HyperTerminal has a "Redial on Busy" feature, and sometimes I use that or dial the rest of the computers and then come back to that one. I need to build that into my script, also.
Considering that war dialing is possible, although it doesn't log the output, only the absence or presence of a carrier tone, I feel like this is achievable. How might I go about implementing this?
I need a Batch or VBS solution, if possible. I'm not sure how good PowerShell support is on Windows XP, and for various reasons, I'd prefer not to install any additional tools (e.g. Python, etc.) onto the machine.
Clarification: I have a friend who at one point made a script that could dial out using Hayes commands onto the line. That's the easy part; the hard part is being able to detect the printout from the remote computer and log that to a text file.
The paid version of HyperTerminal offers facilities to script things along these lines, but I would like to do this for free by using a custom script, with the ability to handle busy numbers as well.
Thanks!
PowerShell
Here's what I get when running the PowerShell script:

Here is the script I tried:
# Create your instance of the SerialPort Class
$serialPort = new-Object System.IO.Ports.SerialPort
# Set various COM-port settings
$serialPort.PortName = "COM3"
$serialPort.BaudRate = 1200
$serialPort.WriteTimeout = 500
$serialPort.ReadTimeout = 23000
$serialPort.DtrEnable = "true"
# or in one command
# $serialPort= new-Object System.IO.Ports.SerialPort COM#,Baudrate,None,8,one
# Open the connection
$serialPort.Open()
# write to it
$serialPort.WriteLine( "at+csq" + "`r" )
$serialPort.WriteLine( "atdt1NPANXXXXXX" + "`r" )
# wait
start-sleep -m 50
# read line
$line = $serialPort.ReadLine()
Write-Host $line
# write to it
$serialPort.Close()
Closest Solution So Far:
Closest I've been able to get is using AHK, which is quite finicky, but works enough of the time to be useful. My plan is to hook it up a batch script and pass in each number and iterate through until I've successfully gotten a printout from each computer.

