I use groups to set printers. There needs to be a naming convention used for this script to work.

All printers have two matching groups

Ex Printer name
q-mis

Ex Group name
A01_q- Print server 1 add'l printer
D01_q- Print server 1 default printer

A02_q- Print server 2 add'l printer
D02_q- Print server 2 default printer

2 groups for this printer on print server 1: A01_q-mis and A01_q-mis
2 groups for this printer on print server 2: A02_q-mis and A02_q-mis


 Code:
********** Beginning of printer mapping *********
call @Scriptdir+'\primapstate.udf'

$WS = GetObject('WinNT://' + @domain + '/' + @wksta + '$$')
 
if @error
   ? @serror
else

$ps1='prn01'        ; site1 ps1
$ps2='prn02'        ; site2 ps2
$ps3='oma-prn01'    ; site3 ps1
$ps4='oma-prn02'    ; site3 ps2
$ps5='pro-prn01'    ; site4


   for each $grp In $WS.Groups
      $GrpName = $grp.Name


;--- Add additional printers ---

     if left($GrpName,2) = 'A0' ;

	$psn = substr($Grpname,2,2)  ;print server number determined by 2-3 character A01=PS1 A02=PS2

	if $psn='01' $ps=$ps1 endif
	if $psn='02' $ps=$ps2 endif
	if $psn='03' $ps=$ps3 endif
	if $psn='04' $ps=$ps4 endif
	if $psn='05' $ps=$ps5 endif

	$addlprinter = substr($GrpName,5)  ;printer group name starts at 5th character
	$addlprinter = $ps+'\'+$addlprinter
        $addlprinter = '\\'+$addlprinter
        ? "Additional Printer: "$addlprinter

         if not PriMapState($addlprinter)
	    ? "Status: Printer not connected " + $addlprinter
	    $nul=AddPrinterConnection($addlprinter)
	    ? "Status: Printer added " + $addlprinter
	    ? @serror
         endif

     endif 

;--- Add and set default printer ---
 
      if left($GrpName,2) = 'D0'  ;print server number determined by third character D01=PS1 D02=PS2

	$defprinter = substr($GrpName,5) ;printer group name starts at 5th character
	$psn = substr($Grpname,2,2)

	if $psn='01' $ps=$ps1 endif
	if $psn='02' $ps=$ps2 endif
	if $psn='03' $ps=$ps3 endif
	if $psn='04' $ps=$ps4 endif
	if $psn='05' $ps=$ps5 endif


        $defprinter = $ps+'\'+$defprinter
        $defprinter = '\\'+$defprinter
         ? "** Printers assigned through Printer Setup Group **"
         ? " "
         ? "Default Printer:    "$defprinter

         if not PriMapState($defprinter)
            ? "Status: Printer not connected "+$defprinter
            $nul=AddPrinterConnection($defprinter)
            ? "Status: Printer added "+ $defprinter
            ? @serror
 	    $nul=SetDefaultPrinter($defprinter)
            ? "Status: Default Printer set "+ $defprinter
            ? @serror
         endif
  
         if PriMapState($defprinter)<>2
            $nul=SetDefaultPrinter($defprinter)
             ? "Status: Default Printer changed "+ $defprinter
             ? @serror
         endif
      endif
   next
endif