grizzly
Goto Top

MS Server 2003 Terminal Service "redirected" Client Drucker per Skript umbenennen

Suche ein Sktript bzw. Tools um Druckernamen einer Remotesitzung bei der Anmeldung umzubenennen

In Einer Remotedesktop-Sitzung kann Windows Server 2003 die lokalen Drucker des Clients während der Sitzung umleiten.
Auf dem Remotedesktop werden die Drucker nach dem Muster
"HP Laser Jet auf SERVER (von CLIENT) in Sitzung 2"
dargestellt.
Im Namen besteht also eine Abhängigkeit zur Sitzungsnummer.
In diversen Anwendungsprogrammen muss ich den Drucker mit festem Namen hinterlegen

Die Sitzungsnummer ändert sich aber je nach Anmeldung - wodurch sich der Druckername ständig ändert.

Man kann den Drucker in jeder neuen Sitzung zwar manuell umbenennen - aber das ist auf Dauer lästig

Kennt jemand ein Skript oder ein Tool, welches die umgeleiteten lokalen Drucker der jeweiligen Sitzung auf einen fest definierten Namen umbenennen kann bzw. die Sizungsnummer entfernen kann?


Ein einfaches Skript habe ich gefunden - aber die Remote- Desktop Benutzer haben nicht genügend Rechte um den Drucker umzubenennen - wie kann man den Benutzern das Recht "Drucker verwalten" auf die umgeleiteten" Drucker vergeben - so dass dies auch nach dem erneuten Anmelden funktioniert ?

Content-Key: 17378

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

Printed on: April 26, 2024 at 02:04 o'clock

Member: HardyPaw
HardyPaw Jan 05, 2006 at 09:31:55 (UTC)
Goto Top
Hallo,

habe das gleiche Problem.
Gugst Du hier.

http://terminal.servebeer.com/php/renameprinter.php

Habe dann den delimeter in der For Anweisung von / auf ) gesetzt.

Geht sicher noch eleganter.
Member: JediFerdi
JediFerdi May 22, 2006 at 10:04:15 (UTC)
Goto Top
Hallo,

ich bin ebenfalls brennend an dem Script zur Druckerumbenennung interessiert. Wo kann ich mir das holen (oder noch besser bitte mir zu schicken)

Gruß
Ferdi
Member: grizzly
grizzly May 30, 2006 at 13:18:49 (UTC)
Goto Top
Das Skript von oben genanntenm Link funktioniert nach kleiner Änderung.

Allerdings benötigt man das Recht "Drucker verwalten" für den jeweiligen Drucker.

Das Recht hat auf unserem Server jedoch nur die Administratoren !

Zwar kann man das Recht an eine Bneutzer erteilen, sofern das Druckerobjekt gerade da ist (der jeweilige Client gerade eine TS- Sitzung laufen hat) jedoch verschwindet das Recht bei Beendigung der Sitzung.

Kennt Jemand eine Möglichkeit, die Rechtevergabe dauerhaft zu machen bzw. dem Ersteller des Druckerobjekts das Recht "Drucker verwalten" automatisch zu setzen ?

System: Server 2003 (Terminal Services)
Client: Windows XP Prof. - bzw. Windows 2000 Prof
Member: Entwickler
Entwickler Aug 30, 2006 at 07:16:51 (UTC)
Goto Top


Ein einfaches Skript habe ich gefunden -
aber die Remote- Desktop Benutzer haben nicht
genügend Rechte um den Drucker
umzubenennen - wie kann man den Benutzern das
Recht "Drucker verwalten" auf die
umgeleiteten" Drucker vergeben - so dass
dies auch nach dem erneuten Anmelden
funktioniert ?


bitte poste mal dein script danke, bei mir verfügen die user nämlich über gnug rechte
Member: grizzly
grizzly Aug 30, 2006 at 08:04:52 (UTC)
Goto Top
Das Skript sieht derzeit so aus:


strComputer = "."
WScript.sleep 10000

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where DeviceID = 'EPSON LQ-590 (von BUERO) in Sitzung 1' ")

For Each objPrinter in colPrinters
objPrinter.RenamePrinter("EPSON LQ-590 von BUERO")
Next


man kann das für jede mögliche Sitzungsnummer wiederholen - ich habe zum Test einfach die Zeilen kopiert - und die Sitzungsnummern geändert. Vermutlich kann man das mit einer Schleife besser machen. Das "sleep" habe ich eingefügt, damit das Skript etwas verzögert wird.

Wie bereits geschrieben haben nur die Admins (bei Server 2003) das entsprechende Recht auf das Druckerobjekt.
Momentan experimentiere ich mit der Trigger - Funktion von Server 2003.

Bei der Anmeldung der entsprechenden Benutzer erzeuge ich ein Ereignis im Ereignisprotokoll des Servers.
Auf dieses Ereignis habe ich einen Trigger gesetzt, welcher dann obiges Skript laufen lässt. (dann klappt es auch mit den Rechten, weil für den Trigger ein extra Konto mit Admin-Rechte angegeben werden kann).
Leider funktioniert das auch nur, wenn die Benutzer eine Sitzung neu aufmachen - bei unterbochenen Sitzungen (WAN Leitung unterbricht - und wird neu aufgebaut)verschwindet das Druckerobjekt - und wird beim Reconnect mit dem entsprechenden Namensproblem neu erstellt.
Der Trigger funktioniert derzeit nur beim öffnen einer neuen Sitzung.
Wenn Ihr eine Möglichkeit findet, auch beim Reconnect ein ereignis zu erzeugen wäre das sehr hilfreich.
Auch die Syntax für eine korrekte Schleife für mein Testscript wäre schön

Gruß
Member: Entwickler
Entwickler Sep 01, 2006 at 06:36:58 (UTC)
Goto Top
Hallo,

ich muss euch leider mitteilen, das ausser HTML, Java und .bat nichts von mir zu erwarten ist face-smile kann mir bitte wer erklären, wie ich dieses script ausführen muss, mit welchem programm, was für ne datei das ist?


Danke

LG

Loco
Member: grizzly
grizzly Sep 01, 2006 at 07:31:56 (UTC)
Goto Top
das ist natürlich ein vbs Skript
eine vbs - Datei anlegen z.B. "Druckerumbenennen.vbs" - Skript einfügen - nach den eigenen Anforderungen (Druckernamen...) modifizieren - und per Mausklick aktivieren - oder eben per Trigger oder per Autostart ...

Für meinen Test habe ich einfach die entsprechenden Zeilen kopiert - und nur die Sitzungsnummer variiert - vermutlich lässt sich das ganze auch in einer Schleife mit einer Variablen umsetzen - da mache ich mir jedoch momentan keinen Kopf, weil das ganze wie bereits geschrieben ein anderes Problem birgt.