ratinho
Goto Top

Netzwerkdrucker per Script von Server1 auf Server2 umleiten

Unser Printserver ist in der letzten Zeit etwas bockig, d.h. er verliert gerne mal
die Verbindung zur Domäne.
Ein neuer ist bestellt, aber egal.....
Wenn das am Wochenende passiert, gibt es erhebliche Probleme
in unserem Produktionsbereich.
Um Abhilfe zu schaffen, habe ich alle relevanten Drucker auch auf einem
Ersatzserver eingerichtet.
Meine Frage:
Wie kann ich am geschicktesten per Script die Drucker des Ersatzservers
an den jeweiligen Clients verbinden?
Es müssten die nicht mehr ereichbaren Drucker des eigentlichen Printservers
getrennt werden, danach die Ersatzdrucker des Ersatzservers unter dem gleichen
Namen geshart werden, und danach mit den Clients verbunden werden.
Ist das möglich?

Vielen Dank im Vorraus!

Content-Key: 45595

Url: https://administrator.de/contentid/45595

Printed on: April 19, 2024 at 22:04 o'clock

Member: gemini
gemini Nov 29, 2006 at 09:42:43 (UTC)
Goto Top
Hallo ratinho,

möglich ist das schon, die Frage ist macht es Sinn?
Auf dem Client müsste dann permanent die Erreichbarkeit des Printservers geprüft werden bspw. mit ping -t.
Bei einer best. Anzahl ausbleibender Antworten könnte man dann auf Nichterreichbarkeit schließen. Wobei, so 100%ig ist das auch nicht.
Das Trennen/Verbinden stellt kein Problem dar, kann bspw. mit VBScript oder der printui.dll erledigt werden.

Ich weiß ja nicht wie lange ihr Lieferzeit habt, aber wenn der neuer Printserver eh schon bestellt ist, wäre es dann nicht einfacher, für die Lieferzeit einfach alle oder auch nur bestimmte Drucker auf den Ersatzserver zu legen?

Gruß,
gemini

PS: Was ist denn die Ursache der Disconnects? Wegen einer defekten Netzwerkkarte den kompletten Server zu erneuern, fände ich übertrieben.
Member: ratinho
ratinho Nov 29, 2006 at 10:46:24 (UTC)
Goto Top
Hallo ratinho,

möglich ist das schon, die Frage ist
macht es Sinn?
Auf dem Client müsste dann permanent
die Erreichbarkeit des Printservers
geprüft werden bspw. mit ping -t.
Bei einer best. Anzahl ausbleibender
Antworten könnte man dann auf
Nichterreichbarkeit schließen. Wobei,
so 100%ig ist das auch nicht.
Das Trennen/Verbinden stellt kein Problem
dar, kann bspw. mit VBScript oder der
printui.dll erledigt werden.

Ich weiß ja nicht wie lange ihr
Lieferzeit habt, aber wenn der neuer
Printserver eh schon bestellt ist, wäre
es dann nicht einfacher, für die
Lieferzeit einfach alle oder auch nur
bestimmte Drucker auf den Ersatzserver zu
legen?

Gruß,
gemini

PS: Was ist denn die Ursache der
Disconnects? Wegen einer defekten
Netzwerkkarte den kompletten Server zu
erneuern, fände ich übertrieben.

Der Server ist eh' eine alte Gurke, und wird im Zuge eines Server-Refreshs März/April 07 erneuert.
Das eigentliche Problem ist, dass am Wochenende ein Hotliner die Aufgabe hat, die Erreichbarkeit der Server zu überwachen.
Er kann zwar über das RibBoard den Druckserver "theoretisch" neu starten.
Leider funktioniet dies nicht immer zuverlässig.
Damit ich oder der Hotliner nicht immer bis zu 50 km fahren müssen,
wäre eine Script-Lösung auf dem Ersatzserver eine tolle Sache!
Member: Cheops
Cheops Nov 29, 2006 at 11:53:59 (UTC)
Goto Top
Hallo,

hatte das gleiche Problem und es wurde hier im Forum beantwortet. Wir haben es jedoch mit KIX gelöst. Sollte aber für diese Aufgabenstellung kein Problem sein mal kurz KIX zu installieren.

Hier das Script welches mir ursprünglich von Superboh zur Verfügung gestellt wurde:

;=========================================
; Kix-Script - Change PrintServer.Kix
;=========================================

Break on

$prtsrvold="\\AlterServer"
$prtsrvnew="\\NeuerServer"
$Index = 0
$TempPrinter = ""

;----------------------------------------------------
;Erstellt eine Liste mit allen installierten Druckern
;----------------------------------------------------

Dim $PrinterArray[40]
:Loop
If @16034=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
;---------------------------------------


Vielleicht hilft dir das.

Gruß
Member: ratinho
ratinho Nov 29, 2006 at 12:31:27 (UTC)
Goto Top
Vielen Dank,

werde es asap ausprobieren!