swetrain
Goto Top

Standardrucker unter 2008R2 setzen

Hallo zusammen,

hoffe, ich bin mit meiner Frage hier im richtigen Forum, ansonsten bitte entsprechend verschieben.

Unsere Mitarbeiter greifen über RDP auf den 2008R2 SP1 zu.
Da sie je nach Aufgabe in verschiedenen Büros, bzw. Gebäuden arbeiten, möchte ich es ihnen so einfach wie möglich machen (es sind viele Sozialpädagoginnen und Sozialpädagogen dabei face-smile), den Standarddrucker entsprechend zu ändern.
Dazu habe ich eine kleine Access-Datenbank erstellt, die den Standarddrucker wie folgt einstellt. Nach dem Einstellen des Standarddruckers wird der User samt Drucker in einer Tabelle gespeichert, damit bei der nächsten Anmeldung direkt der zuletzt verwendete Drucker gewählt werden kann.

Public Function SetDefaultPrinter(strPrinterName As String) As Boolean

On Error GoTo eh

Dim oWScript As Object

Set oWScript = CreateObject("WScript.Network")

oWScript.SetDefaultPrinter strPrinterName

SetDefaultPrinter = True

ex:
Set oWScript = Nothing
Exit Function

eh:
MsgBox Err.Description, vbCritical, "Fehler-Nr.: " & Err.Number
SetDefaultPrinter = False
GoTo ex

End Function


Das funktioniert soweit auch ganz gut, AUSSER:
Es werden lokale Drucker mit auf den Terminalserver verbunden (also das Häkchen bei "Drucker" im Reiter "lokale Ressourcen" ist gesetzt.)

Stehen nur die auf dem Server installierten Drucker zur Verfügung, kann ich mit o.g. Code wunderbar den Standarddrucker ändern, sobald ich jedoch lokale Drucker habe, lässt sich der Standarddrucker damit nicht ändern.

Hat jemand eine Ahnung, was ich ändern muss, damit es auch klappt, wenn lokale Drucker vorhanden sind?

Danke für alle Infos.

Jochen

Content-ID: 195009

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

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

swetrain
swetrain 28.11.2012 aktualisiert um 05:58:37 Uhr
Goto Top
Fast gelöst face-smile

Es muss heissen:

Shell "rundll32 printui.dll,PrintUIEntry /y /n " & sPrinterName

Damit kann ich das ganze Scripting-Zeug weglassen und der Standard-Drucker wird auch bei durchgeschleiften lokalen Druckern geändert.

Wenn der Druckername jedoch Leerzeichen hat (und das ist ja bei den weitergeleiteten Druckern immer der Fall, geht es leider nicht.
Hat jemand eine Ahnung, wie man da Drucker mit Leerzeichen übergeben kann? (In Hochkomma, bzw. Anführungszeichen geht auch nicht, da erhalte ich ebenfalls eine Fehlermeldung)

Viele Grüsse
Jochen