Standard Drucker per Script ändern.

Hallo zusammen,

folgende Situation (Windows Domäne, Servergespeicherte Profile, WinXP): Ich arbeite derzeit an zwei PCs in zwei Unterschiedlichen Abteilungen. In letzter Zeit passiert es mir öfters, das ich einfach mal auf Drucken klicke und die Datei ca. zwei km entfernt auf dem Drucker der anderen Abteilung landet. Alles kein Problem, schreibe ich mir halt ein Script, das beim Anmelden den Standarddrucker ändert.
Zuerst soll der Computername ausgelesen werden. Sitze ich an dem PC in Abteilung A, wird Drucker A zum Standard. Abteilung B, Drucker B. Melde ich mich an einem anderen PC an, wird nichts umgestellt. Eigentlich logisch.

Leider habe ich vom Scripten nicht all zu viel Ahnung. In VBS müsste ich mich erst einarbeiten, aber ein Batchfile ist ja schnell geschrieben:
Code:
:: Keine Ausgabe der Befehle
ECHO off

:: Scripthost ändern (notwendig für prnmngr)
CScript //H:CScript //S

:: Computernamen Festlegen, werden einmalig im Script eingetragen
SET AbteilungA=PC_A
SET AbteilungB=PC_B

:: Wenn der PC aus Abteilung B , benutzt wird, dann... 
IF %COMPUTERNAME%==%AbteilungA% (
	ECHO "Willkommen in AbteilungA" 
	:: ...wird der folgende Drucker als Standard definiert:
	prnmngr -t -p \\printserver1\printerA
) ELSE (
	:: Wenn der PC aus Abteilung B , benutzt wird, dann... 
	IF %COMPUTERNAME%==%AbteilungB% (
		ECHO "Willkommen im AbteilungB"
		:: ...wird der folgende Drucker als Standard definiert: 
		prnmngr -t -p \\printserver2\printerB
	) ELSE (
		:: Falls an keinem der Beiden festgelegten PCs gearbeitet wird, wird nur der derzeitge Standard-Drucker ausgegeben
		ECHO "Sie sind nicht an ihrem Standard-PC im AbteilungA oder AbteilungB angemeldet. Ihr Standard-Drucker wird nicht geändert."
		prnmngr -g
	)
)

:: Scripthost ändern
CScript //H:WScript //S

Das Script ist kurz und funktioniert - wenn man Admin ist.

Problem an der Sache ist der Scripthost. Wir verwenden im Unternehmen für unsere Scripte WScript, der Befehl prnmngr funktioniert nur mit CScript. Also muss ich den Scripthost zu Beginn und Ende des Scripts umstellen. Dazu benötigt man (lokale) Admin-Rechte. Allerdings wird nicht immer mit Adminrechten gearbeitet - warum sollte wohl klar sein.

Jetzt suche ich nach einer alternativen Lösung. Entweder vbs oder Änderugen an meinem Batch-File. Hat jemand ne Idee.
ot:

Wenn jemand mein Script gebrauchen kann, viel Spaß damit, ihr müsst nur PC_A und PC_B in den Variablen AbeilungA und AbteilungB durch den Computernamen erstezen und natürlich die Druckernamen (Die könnte man auch noch in VAriablen packen...) ändern.


Danke und Gruß
tobim1986
 
zugegeben, ich kenn mich mit servergespeicherten Profilen nicht aus, aber wie währe es mit:
Code:
rundll32.exe printui.dll,PrintUIEntry /?
 
So, ich habe das Skript angepasst und getestet: Es funktioniert!
Danke noochmal für die Hilfe!

Code:
:: keine Befehlsausgabe
ECHO off

::  >>>Variablen<<<
:: Abteilungs PC gleich Computername
SET AbteilungA=ComputernameA
SET AbteilungB=ComputernameB
:: Abteilungs Drucker gleich Druckername
SET PrinterA=\\DruckserverA\DruckerA
SET PrinterB=\\DruckserverB\DruckerB


:: >>>Standarddrucker fetlegen<<<
:: Wenn der aktuelle Computername einem der festgelegten Computernamen entspricht, wird der zugehörige Drucker als Standarddrucker eingerichtet.
IF %COMPUTERNAME%==%AbteilungA% (
	rundll32 printui.dll,PrintUIEntry /y /n %PrinterA%
	ECHO Willkommen im AbteilungA. Ihr Standarddrucker lautet: %PrinterA%
)
IF %COMPUTERNAME%==%AbteilungB% (
	rundll32 printui.dll,PrintUIEntry /y /n %PrinterB%
	ECHO Willkommen im AbteilungB. Ihr Standarddrucker lautet: %PrinterB%
)
 
Oben