Here is an example script to move a users currently mapped printers to a new
print server as defined in a PRINTERS.INI file.
The PriMapState UDF for this example is located here and is a more updated version then this example.
http://www.kixtart.org/ubbthreads/showflat.php?Cat=&Number=82672
 
Code:
; Set our options
Break On
Dim $SO
$SO=SetOption('Explicit','On')
$SO=SetOption('NoVarsInStrings','On')
 
; Set $CurrentIP to Global so other functions can use it's value 
GLOBAL $CurrentIP
 
; Assign the returned value of the GetCurrentIP() UDF to $CurrentIP 
$CurrentIP=GetCurrentIP()
ResetPrinters()
 
Function ResetPrinters()
  Dim $pmap,$key,$nulp
  Select
    ; Check if the user's IP is a given value and assign the path and file name of the
    ; INI file that contains the PRINTER listing 
    Case InStr($CurrentIP, '122.100.120')
      $pmap="\\122.100.120.150\common\PRINTERS\PRINTERS.INI"
    Case InStr($CurrentIP, '122.100.121')
      $pmap="\\122.100.120.150\common\PRINTERS\PRINTERS.INI"
    Case InStr($CurrentIP, '124.124.110')
      $pmap="\\124.124.110.24\common\PRINTERS\PRINTERS.INI"
    Case 1
      $pmap="\\122.100.120.150\common\PRINTERS\PRINTERS.INI"
  EndSelect
  If @INWIN=1
      ; For each entry in the INI file check if it exist and check if the printer is a default printer
      ; then add the new printer and remove the old one using the PriMapState UDF. 
      For Each $key In Split(ReadProfileString($pmap,"PRINTER_MAP",""),chr(10))
        If PriMapState($key)
          $nulp=AddPrinterConnection(ReadProfileString($pmap,"PRINTER_MAP",$key))
          If PriMapState($key)=2
            $nulp=SetDefaultPrinter(ReadProfileString($pmap,"PRINTER_MAP",$key))
          EndIf
          $nulp=DelPrinterConnection($key)
        EndIf
      Next
   EndIf
EndFunction
 
Function PriMapState($_Pri)
  ; Check if the Length is greater then blank for the specified registry location
  ; and if it is then move on to the next If statement which checks if the printer listed is
  ; a default printer or not. 
  If Len(ReadValue('HKCU\Software\Microsoft\Windows NT\CurrentVersion\Devices',$_Pri))
    If InStr(ReadValue('HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows','Device'),$_Pri)
      $PriMapState=2
    Else
      $PriMapState=1
    EndIf
  EndIf
EndFunction
 
; UDF Pings the workstation and puts the value in a text file.  Then it reads the text file
; and places the value into $GetCurrentIP 
Function GetCurrentIP()
Dim $TempFile, $Line, $cf
$TempFile = '%TEMP%\PING.TXT'
If Exist($TempFile)
 Del $TempFile
EndIf
Shell '%COMSPEC% /C PING -n 1 ' + @WKSTA + '>'+$TempFile
If open(1, $TempFile) = 0
 $Line = ReadLine(1)
 While @ERROR = 0
  If InStr($Line,@WKSTA)
   $Line = SubStr($Line,InStr($Line,"[")+1)
   $GetCurrentIP = SubStr($Line,1,InStr($Line,"]")-1)
  EndIf
  $Line = ReadLine(1)
 Loop
 $cf = Close(1)
EndIf
If Exist($TempFile)
 Del $TempFile
EndIf
EndFunction
 
 
 EXAMPLE PRINTERS.INI 
 
Code:
[PRINTER_MAP]
\\PS22\PS22_TURK=\\PS09\SP-NORTH-TURK
\\PS22\PS22_DIRK=\\PS09\SP-NORTH-DIRK
\\PS22\PS22_SONET=\\PS09\SP-NORTH-SONET
\\PS22\PS22_KLONDIKE=\\PS09\SP-NORTH-KLONDIKE