Windows 2003 - login.bat - Drucker in Gruppen
Verschieden Benutzer anhand der Gruppe einen Drukcer zuweisen, aber bei mehreren Gruppen nur einen als Standard.
Ich habe in unserem System in der login.bat ein Script eingebaut, dass bei den Benutzer anhand der Gruppe bestimmte Drucker installiert und ggf. einen davon als Standarddrucker setzt.
Mein Problem an der Sache ist halt, dass wir einige Benutzer haben, die sich in mehreren Gruppen befinden, aber einen ganz bestimmten Drucker als Standard haben sollen.
Kann ich da in einer Art und Weise eine Rangfolge oder so etwas vergeben für die Drucker ? Oder wie kann ich das Problem elegant lösen ?
So sieht bei mir das Script aus, um einen Drucker für eine bestimmte Gruppe zu adden:
rem ----------------------------------------------------------------------
if exist c:\debug.mod ECHO --- Nur Gruppe: CADUSER -------
%logonserver%\netlogon\tools\ifmember "xxx\CADUSER"
if not errorlevel=1 goto printnogrp01
%windir%\system32\rundll32.exe printui.dll,PrintUIEntry /in /n \\xxx\Printer1
%windir%\system32\rundll32.exe printui.dll,PrintUIEntry /in /n \\xxx\Printer2
%windir%\system32\rundll32.exe printui.dll,PrintUIEntry /in /n \\xxx\Printer3
%windir%\system32\rundll32.exe printui.dll,PrintUIEntry /y /n \\xxx\Printer2
:printnogrp01
rem ----------------------------------------------------------------------
Ich danke schonmal im Vorraus.
MfG damike
Mein Problem an der Sache ist halt, dass wir einige Benutzer haben, die sich in mehreren Gruppen befinden, aber einen ganz bestimmten Drucker als Standard haben sollen.
Kann ich da in einer Art und Weise eine Rangfolge oder so etwas vergeben für die Drucker ? Oder wie kann ich das Problem elegant lösen ?
So sieht bei mir das Script aus, um einen Drucker für eine bestimmte Gruppe zu adden:
rem ----------------------------------------------------------------------
if exist c:\debug.mod ECHO --- Nur Gruppe: CADUSER -------
%logonserver%\netlogon\tools\ifmember "xxx\CADUSER"
if not errorlevel=1 goto printnogrp01
%windir%\system32\rundll32.exe printui.dll,PrintUIEntry /in /n \\xxx\Printer1
%windir%\system32\rundll32.exe printui.dll,PrintUIEntry /in /n \\xxx\Printer2
%windir%\system32\rundll32.exe printui.dll,PrintUIEntry /in /n \\xxx\Printer3
%windir%\system32\rundll32.exe printui.dll,PrintUIEntry /y /n \\xxx\Printer2
:printnogrp01
rem ----------------------------------------------------------------------
Ich danke schonmal im Vorraus.
MfG damike
Please also mark the comments that contributed to the solution of the article
Content-Key: 38245
Url: https://administrator.de/contentid/38245
Printed on: April 19, 2024 at 18:04 o'clock
7 Comments
Latest comment
Vom Prinzip her so:
If User in Gruppe1 then
add printer 1
else if User in Gruppe 2 then
add printer 2
else if ...
...
end if
Wenn ein User in Gruppe 1 und 2 ist, dann erhält er trotzdem nur den Drucker von Gruppe 1. In diesem Fall heißt das, je weiter oben die Gruppe abgefragt wird, desto höher ist deren Priorität.
Gruß,
Denis
If User in Gruppe1 then
add printer 1
else if User in Gruppe 2 then
add printer 2
else if ...
...
end if
Wenn ein User in Gruppe 1 und 2 ist, dann erhält er trotzdem nur den Drucker von Gruppe 1. In diesem Fall heißt das, je weiter oben die Gruppe abgefragt wird, desto höher ist deren Priorität.
Gruß,
Denis
Mein Problem an der Sache ist halt, dass wir einige Benutzer haben, die sich in mehreren Gruppen befinden, aber einen ganz bestimmten Drucker als Standard haben sollen.
Also kann man eigentlich auch nicht sagen, dass man die Drucker auf eine Prioritätsliste schreiben kann, sondern, dass es wirklich nur userabhängig ist. Zum Beispiel hast du 2 User die in der Gruppe Einkauf und Verkauf sind. Jedoch soll der eine den Einkauf-Drucker erhalten und der andere den Verkauf-Drucker. Ist das auch ein mögliches Szenario bei dir?
In solch einem Fall müßtest du in deinem Startup-Skript nämlich bevor du die Drucker den Gruppen zuordnest noch eine spezielle Abfrage für alle Ausnahme-Benutzer machen. Fällt ein Benutzer dann in diese Ausnahme-Regelung soll ihm kein weiterer Drucker hinzugefügt werden.
//edit
Frage: Wieviele solcher Ausnahmen werden es denn womöglich sein?
von der reinen logik her würd ich sagen, dass es am schnellsten per if-else geht...
bei 100 gruppen ist das zwar ein ziemlicher aufwand, aber bevor du irgendwelche komplizierte funktionen hast, bei der du für jeden einen spezialfall beachten musst, ist es so am besten.. oder halt die direkte zuweisung nach computer...
bei 100 gruppen ist das zwar ein ziemlicher aufwand, aber bevor du irgendwelche komplizierte funktionen hast, bei der du für jeden einen spezialfall beachten musst, ist es so am besten.. oder halt die direkte zuweisung nach computer...
Hi,
das mit der Rangfolge verstehe ich jetzt nicht so ganz ... aber mit dem Aufruf kannst Du ja mit dem Parameter /y den Standarddrucker einrichten - das kann aber nur einer sein, und zwar IMHO der letzte, der als Standarddrucker definiert wurde (wie bei der GUI halt auch).
Ansonsten würde ich ein Konstrukt ala if %USERNAME% == "DASCHORSCH" ... seinen Standarddrucker
oder anders rum, die Leute anhand Ihrer Standarddrucker auch in Gruppen einsperren und dort anhand der Gruppenmitgliedschaft den Standarddrucker setzen.
BTW: damike, bist Du aus München?
cu,
Alex
das mit der Rangfolge verstehe ich jetzt nicht so ganz ... aber mit dem Aufruf kannst Du ja mit dem Parameter /y den Standarddrucker einrichten - das kann aber nur einer sein, und zwar IMHO der letzte, der als Standarddrucker definiert wurde (wie bei der GUI halt auch).
Ansonsten würde ich ein Konstrukt ala if %USERNAME% == "DASCHORSCH" ... seinen Standarddrucker
oder anders rum, die Leute anhand Ihrer Standarddrucker auch in Gruppen einsperren und dort anhand der Gruppenmitgliedschaft den Standarddrucker setzen.
BTW: damike, bist Du aus München?
cu,
Alex