venjakob
Goto Top

Druckerzuweisung an Computerkonto, nicht an Benutzerkonto

Hallo! Problematik in einem Schulnetzwerk:

Es existieren mehrere Informatikräume mit je einem Netzwerkdrucker. Diese sind z.Zt. alle per AD veröffentlicht.
Alle Schüler haben ein eigenes namensbasierendes Login in der W2K Client-Server-Umgebung.
Alle Schüler haben ein festes, nicht veränderbares Benutzer-Profil. (Muster-Schüler)
Alle Schüler haben nach dem Einloggen Zugriff auf einen öffentlichen TEMP-Ordner auf dem Server. (Netzlaufwerk E - zum Daten tauschen)
Alle Schüler haben nach dem Einloggen Zugriff auf ihr privates namensbasiertes Verzeichnis. (Netzlaufwerk F - HOME-Directory per PROFIL)
Loggt sich Schüler XY in verschiedenen Räumen in verschiedenen Stunden ein, folgt ihm sein Verzeichnis (auf jeden Fall sieht es so für ihn aus).

Wie bekomme ich es hin, dass die Schüler, die in einem Raum sitzen auch nur auf dem passenden Drucker drucken können?
Dies muss gelöst vom Muster-Schüler-Profil gehen, denn das ist ja immer gleich - oder ist da ein Denkfehler?


Ähnliches Problem hatte ich schon einmal hier angesprochen, nur bezogen auf einen Proxy-Server.
2 DSL-Leitungen, PCs sollen sich immer dort bedienen, wo die Internetleitung physikalisch am nähesten ist, also auch nicht Benutzergebunden, sonder Computergebunden. Aber damals konnte mir niemand so richtig weiterhelfen.

Bedanke mich jetzt schon für jeden Tipp.

Content-Key: 10474

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

Printed on: April 18, 2024 at 09:04 o'clock

Member: ElNino
ElNino May 09, 2005 at 19:43:51 (UTC)
Goto Top
Wäre es nicht möglich die Drucker lokal einzurichten und diese dann für jeden Nutzer freizugeben?
Member: gemini
gemini May 09, 2005 at 19:56:26 (UTC)
Goto Top
Du brauchst ein Kriterium an dem du die Räume unterscheiden kannst.

Das kann bspw. der Computername sein, wenn diese einer entspr. Nomenklatur folgend vergeben sind. Nachteil: Wenn der Computer in einen anderen Raum gestellt wird muss er umbenannt werden.

Ich benutze dazu das Attribut location der Computerobjekte im AD. Im Loginscript wird mittels LDAP dieses Attribut abgefragt und ausgewertet. Das funktioniert einwandfrei, und wenn der Rechner verschoben wird muss lediglich der Standort im AD angepasst werden.

Ich kann dir den Ausschnitt aus dem Script morgen posten, wenn ich wieder im Büro bin.
Member: Atti58
Atti58 May 09, 2005, updated at Oct 17, 2012 at 13:28:28 (UTC)
Goto Top
... warum regelst Du das nicht über ein computergebundenes Login-Script? Ich gehe von einer Domäne aus, dann kannst Du doch ein Gruppenrichtlinienobjekt mit einer "Computerpolicy" für jeden Raum anlegen und dort über z.B.:

Drucker per Login Script

die Drucker mappen,

Gruß

Atti

PS: ähnlich könnte man das mit dem Proxy natürlich auch regeln ... face-wink
Member: norbertbaum
norbertbaum May 09, 2005 at 20:11:03 (UTC)
Goto Top
also bei uns ist das so.....
wir haben in jedem zimmer 2 drucker...
die zimmer sind unterschieden nach [zimmer-nr]-[PC-Nr]..also zB 434-12
und dann wir mit hilfe "kixstart" der druckerscript ausgeführt wo drin steht...
if (computername=434)
drucker....
else if

ka wie der script jetzt genau aus sehen müsste...ich könnte es morgen raus finden...wenn ich unseren Admin im hause sehe...


mfg
norbert
Member: Venjakob
Venjakob May 09, 2005 at 20:20:08 (UTC)
Goto Top
Das hört sich gut an!
Wäre sehr nett den Teil von Script zu senden.
Danke!
Member: gemini
gemini May 10, 2005 at 05:28:54 (UTC)
Goto Top
Der Ausschnitt für die Druckerzuweisung

' #############################
' Logon.vbs
' #############################
Option Explicit
On Error Resume Next

Dim WshNetwork, WshShell, CRLF, objArgs
Dim strMsg, strCompany, strUserName, strCompName, strDomain
Dim strLogonSRV, strFileSRV, strPrintSRV, strContainer, strLocation
Dim objRootDSE, objItem
Dim i, colDrives, colPrinters, nReturnCode, nSecondsToWait

CRLF = Chr(13) & Chr(10)
strLogonSRV = "<<a>DeinDC<a>>"
strPrintSRV = "<<a>Printserver<a>>"
strFileSRV = "<<a>Fileserver<a>>"
strContainer = "OU=<<a>OU<a>>"

Set WshNetwork = Wscript.CreateObject("Wscript.Network")
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set objArgs = Wscript.Arguments

strDomain = WshNetwork.UserDomain
strUserName = ""
strCompName = LCase(WshNetwork.ComputerName)

' ----------------------------------------------------------
' Verbindung zu Verzeichnis
Set objRootDSE = GetObject("LDAP:rootDSE")
If strContainer = "" Then
  Set objItem = GetObject("LDAP:
" & objRootDSE.Get("defaultNamingContext"))
Else
  Set objItem = GetObject("LDAP://cn=" & strCompName & "," & strContainer & "," & objRootDSE.Get("defaultNamingContext"))
End If
strLocation = objItem.Get("location")

' ----------------------------------------------------------
' Einrichten der Drucker

WshNetwork.RemovePrinterConnection "\\" & strPrintSRV & "\<<a>Drucker1<a>>"
WshNetwork.RemovePrinterConnection "\\" & strPrintSRV & "\<<a>Drucker2<a>>"
WshNetwork.RemovePrinterConnection "\\" & strPrintSRV & "\<<a>Drucker3<a>>"

If strLocation = "<<a>Raum1<a>>" Then
  WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\<<a>Drucker1<a>>"
  WshNetwork.SetDefaultPrinter "\\" & strPrintSRV & "\<<a>Drucker1<a>>"
ElseIf strLocation = "<<a>Raum2<a>>" Then
  WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\<<a>Drucker2<a>>"
  WshNetwork.SetDefaultPrinter "\\" & strPrintSRV & "\<<a>Drucker2<a>>"
ElseIf strLocation = "<<a>Raum3<a>>" Then
  WshNetwork.AddWindowsPrinterConnection "\\" & strPrintSRV & "\<<a>Drucker3<a>>"
  WshNetwork.SetDefaultPrinter "\\" & strPrintSRV & "\<<a>Drucker3<a>>"
End If
' #############################

Statt der IF-Anweisung kannst du natürlich auch Select Case einsetzen.

Hope it helps
Member: norbertbaum
norbertbaum May 10, 2005 at 06:33:52 (UTC)
Goto Top
guten morgen face-smile

ich habe mir gerade den kix32.exe drucker script mir angeguckt *g*

If substr(@wksta,1,3)="432"
AddPrinterConnection("\\server3\hplj432") EndIf
If substr(@wksta,1,3)="434"
AddPrinterConnection("\\server3\hplj434") EndIf

(@wksta,1,3)="432" - er leist nur die ersten 3 stellen des PC-Namen aus...in dem Fall 432
("\\server3\hplj432") - der netzwerkdrucker

sollte man mehr brauchen einfach mehr mals mit anderen variablen schreiben face-smile


viel erfolg...der script läuft auf einem NT server geht aber auf jeden server