Okay, after some searching around the forums, I came up with this:

Code:
 ; -------------------------------------------------------------------
; Call: EnumPrinterConnections()
; Returns: Array of Printers, format is "printer name","printer port name" ; or empty array
; Requires: Windows Script Host 1.0+ (included in IE5.0+)

? "----------------------------------------------------------"

$printers=EnumPrinterConnections()

GOSUB "doUpgrade"

Exit





; ****************************************
;
; SUBROUTINES
;
; ****************************************


:doUpgrade
$DefaultPrinter=ReadValue ("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows", "Device")
$oldprintserver="TYPHOON"
$newprintserver="HSCXNTFP0101"
$printers=EnumPrinterConnections()

For Each $printer in $printers
? "Attempting to delete "+$printer+"."
If DelPrinterConnection ("\\"+$oldprintserver+"\"+$printer) = 0
? "Attempting to add "+$printer+"."
If AddPrinterConnection ("\\"+$newprintserver+"\"+$printer) = 0
? $printer+" added successfully."
If InStr ($DefaultPrinter,$printer)
$null = SetDefaultPrinter ("\\"+$newprintserver+"\"+$printer)
Endif
Else
? $printer+" was not added successfully."
Endif
Else
? $printer+" did not need to be deleted."
Endif
?
Next
RETURN









; ****************************************
;
; FUNCTIONS
;
; ****************************************

Function EnumPrinterConnections
; return a list of all printer connections
; format: UNC name, port
Dim $ReturnArray[]
Dim $WshNetwork, $oPrinters
Dim $i

$EnumPrinterConnections=""
$WshNetwork = CreateObject("WScript.Network")
If @Error=0
$oPrinters = $WshNetwork.EnumPrinterConnections
For $i = 0 to $oPrinters.Count-1 Step 2
; init/enlarge the return array
If Ubound($ReturnArray)=-1
ReDim $ReturnArray[0]
Else
ReDim Preserve $ReturnArray[Ubound($ReturnArray)+1]
EndIf
$ReturnArray[Ubound($ReturnArray)]=$oPrinters.Item($i+1)+","+$oPrinters.Item($i)
Next
Else
? "Failed to get WScript.Network object."
EndIf
$EnumPrinterConnections=$ReturnArray
EndFunction




The problem is that it doesn't actually "do" anything. I have several printers on my computer setup that point to Typhoon as the printserver, and they still appear to point to Typhoon now, having run the script several times.

Here's the full result set:


Quote:


----------------------------------------------------------
Attempting to delete \\hscxntfp0101\BA111_1Q,ba111-1q.dhcp.hsc.mb.ca.
\\hscxntfp0101\BA111_1Q,ba111-1q.dhcp.hsc.mb.ca did not need to be deleted.

Attempting to delete \\hscxntfp0101\GC209_1Q,IP_172.16.152.148.
\\hscxntfp0101\GC209_1Q,IP_172.16.152.148 did not need to be deleted.

Attempting to delete \\TYPHOON\BA102_1Q,ba102-1q.dhcp.hsc.mb.ca.
\\TYPHOON\BA102_1Q,ba102-1q.dhcp.hsc.mb.ca did not need to be deleted.