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