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!
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!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 45595
Url: https://administrator.de/contentid/45595
Ausgedruckt am: 24.11.2024 um 02:11 Uhr
4 Kommentare
Neuester Kommentar
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.
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.
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ß
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ß