;------------------------------------------------
;Wechseln des PrintServer (server001 auf server045)
;------------------------------------------------
Break on
$prtsrvold="\\server001"
$prtsrvnew="\\server045"
$Index = 0
$TempPrinter = ""
;----------------------------------------------------
;Erstellt eine Liste mit allen installierten Druckern
;----------------------------------------------------
Dim $PrinterArray[40]
:Loop
If @ERROR=0
$TempPrinter = $TempPrinter + EnumValue("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts",$Index) + ","
$Index = $Index + 1
GoTo "Loop"
EndIf
$TempPrinter = Trim($TempPrinter)
$Length = Len("$TempPrinter") - 2
$TempPrinter = Left("$TempPrinter","$Length")
$PrinterArray = Split("$TempPrinter",",")
;------------------------------
;Ermittelt den Standard Drucker
;------------------------------
$DefaultPrinter = ReadValue("HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows","Device")
If $DefaultPrinter <> ""
$End = InStr("$DefaultPrinter",",") - 1
$DefaultPrinter = Left("$DefaultPrinter","$End")
Else
$DefaultPrinter = "none"
EndIf
;---------------------
;Gibt Status-Infos aus
;---------------------
;? "Standard-Drucker: " + $DefaultPrinter
;? ? "Liste aller Drucker:" ? ?
;--------------------------------------------------------------------------------------
;Trennt alle Netzwerkdrucker vom alten Server und verbindet sie wieder vom neuen Server
;--------------------------------------------------------------------------------------
For $Count = 0 to $Index-2
If Left($PrinterArray[$Count],Len($prtsrvold))=$prtsrvold ; nur Netzwerk-Drucker auf dem bisherigen Print-Server
;? $PrinterArray[$Count]
$rc=DelPrinterConnection ($PrinterArray[$Count])
? $PrinterArray[$Count]" gelöscht"
$newprt=$prtsrvnew+SubStr ($PrinterArray[$Count],Len($prtsrvold)+1,200)
$rc=AddPrinterConnection ($newprt)
? $newprt" neu verbunden"
EndIf
Next
;---------------------------------------
;Stellt den "alten" Standard-Drucker ein
;---------------------------------------
If $DefaultPrinter <> "none"
If Left($DefaultPrinter,Len($prtsrvold))=$prtsrvold ; Standard-Drucker ist ein Netzwerk-Drucker
$newprt=$prtsrvnew+SubStr ($DefaultPrinter,Len($prtsrvold)+1,200) ;
$rc=SetDefaultPrinter ($newprt) ; "neuer" Standard-Drucker gesetzt
? ? "neuer Standard-Drucker "$newprt" eingestellt"
EndIf
EndIf