try this (untested)

result is array
to get ports split each element on chr(13)

Code:

Function PrinterList(optional $remotepc, optional $ports, optional $types)
dim $service,$printer,$printers,$printerdesc[0],$counter

if not $remotepc $remotepc="." endif
if not $types $types = "b" endif

$Service = GetObject("winmgmts:\\" + $remotepc + "\root\cimv2")
if @error exit @error endif

$Printers=$service.execquery ('select * from Win32_Printer')
for each $printer in $printers
$port = iif($ports, $printer.portname,'')
if not left($types,1) = 'l'
if left($printer.portname,2) = '\\'
$installedprinters = $installedprinters + chr(13) + $printer.name + chr(10) + $port
endif
endif

if not left($types,1) = 'n'
if not left($printer.portname,2) = '\\'
$installedprinters = $installedprinters + chr(13) + $printer.name + chr(10) + $port
endif
endif
next
if not $port
$installedprinters = join(split($installedprinters,chr(10),'')
endif

$PrinterList = split(subst($installedprinters,2),chr(13))
endfunction

_________________________
How to ask questions the smart way <-----------> Before you ask