Jump to content

Standard-Drucker per Loginskript


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen

ich stehe vor einem Problem, hoffe jemand kann mir dabei weiterhelfen.

 

Folgende Situation:

Wir sind eine Schule mit mehreren Schulzimmern.

In jedem Zimmer befindet sich einen Drucker.

 

Problem:

Wir haben benutzer, die sich in verschiedenen Schulzimmern anmelden.

Dabei müsste in jedem einzelnen Schulzimmer einen Standard-Drucker

sein.

 

Also:

Nehmen wir an, wir haben 2 Schulzimmern (Zimmer 1, Zimmer 2).

Benutzer geht ins Schulzimmer 1 und meldet sich dort an. Dann müsste sein momentaner Standard-Drucker der vom Zimmer 1 sein.

 

Dann geht der Benutzer ins Schulzimmer 2, um meldet sich dort auch an. Dann müsste

logischerweise der Standard-Drucker, der vom Zimmer 2 sein.

 

Lösung:

Meiner Meinung nach müsste die Lösung wie folgt sein:

 

Im Loginskript abfragen, in welcher OU der PC sich befindet wo sich der User befindet. Dann anhang davon, müsste der Standard-Drucker gesetzt werden.

 

Kann mir jemand helfen, oder mir einen Tipp geben?

 

Vielen Dank.

 

Grüsse

jmuonline

Link zu diesem Kommentar

Hallo IThome, danke für die schnelle Antwort. Dein Lösungsvorschlag habe ich bereits ausprobiert, geht leider nicht. Jedesmal bei booten der Clients kommt eine Fehlermeldung wegen dem Drucker.

 

Das Problem ist, dass der Drucker nicht als Standard gesetzt werden kann BEVOR der User angemeldet wird.

 

Andere Vorschläge?

 

Danke für die Antwort.

 

Grüsse

jmuonline

Link zu diesem Kommentar

Loopbackverarbeitung bewirkt, dass Benutzereinstellungen auf bestimmten Computern angewendet werden (wie z.B. auf Terminalservern). Die Loopbackeinstellung findest Du in der Computerkonfiguration - Administrative Vorlagen - System - Gruppenrichtlinien - "Loopbackverarbeitungsmodus für Benutzergruppenrichtlinie". Die aktivierst Du und konfigurierst auf Zusammenführen. Im selben GPO definierst Du in der Benutzerkonfiguration ein entsprechendes Anmeldescript. So machst Du es in beiden OUs, in denen sich die Computerkonten der jeweiligen Rechner befinden, nicht die Benutzerkonten ...

Link zu diesem Kommentar

Hallo ITHome

 

Ich hätte da auch noch einige Zusatzfragen.

 

1. Wie sieht Dein Skript genau aus? Wenn ich das Skript normal mit printui... erstelle, funktioniert es nicht richtig. Der Standarddrucker wird mit der Option /y einfach nicht zugewiesen. Soll ich zuerst alle Drucker löschen oder hast Du mir hier einen Tipp?

 

2. Das Skrip hast Du auch unter Start-Skripts in den Computer-Richtlinien eingebunden oder?

 

3. Bei Start dauert das Laden der Computer-Richtlinien ewig, liegt das an der Loopbackverarbeitung?

 

Danke für die Infos im voraus.

 

Gruss

egomat

Link zu diesem Kommentar
  • 4 Wochen später...

Hallo, anbei ein kleiner Ausschnitt meines Scripts. Hatte ähnliches Problem mit Mitarbeitern an verschiedenen Standorten.

 

Ab Zeile 52 ist die eigentliche Zuweisung der Drucker.

 

**** Ab der nächsten Zeile ist das Script ****

Set WSHNetwork = WScript.CreateObject("WScript.Network")

Set WSHShell = WScript.CreateObject("WScript.Shell")

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objNetwork = WScript.CreateObject("WScript.Network")

Set objShell = WScript.CreateObject("WScript.Shell")

strUserDesktop = objShell.SpecialFolders.Item("Desktop")

strUserStartup = objShell.SpecialFolders.Item("Startup")

strUserFavorites = objShell.SpecialFolders.Item("Favorites")

Set colEnvironmentVariables = objShell.Environment("Volatile")

strUserFolder = colEnvironmentVariables.Item("APPDATA") & "\Microsoft\Internet Explorer\Quick Launch"

 

Const OverwriteExisting = TRUE

Const OverWriteFiles = TRUE

 

On Error Resume Next

 

Domain = WSHNetwork.UserDomain

UserName = ""

 

While UserName = ""

UserName = WSHNetwork.UserName

MyGroups = GetGroups(Domain, UserName)

Wend

 

While ComputerName = ""

ComputerName = WSHNetwork.ComputerName

Wend

''*********************************************************************************

''Function:", GetGroups

''*********************************************************************************

 

Function GetGroups(Domain, UserName)

Set objUser = GetObject("WinNT://" & Domain & "/" & UserName)

GetGroups=""

For Each objGroup In objUser.Groups

GetGroups=GetGroups & "[" & UCase(objGroup.Name) & "]"

Next

End Function

 

''********************************************************************************

''Function:", InGroup

''********************************************************************************

 

Function InGroup(strGroup)

InGroup=False

If InStr(MyGroups,"[" & UCase(strGroup) & "]") Then

InGroup=True

End If

End Function

 

 

'Hier werden die Drucker über die Zugehörigkeit der Gruppe "Drucker1" zugewiesen.

'und als Standarddrucker eingestellt.

 

objNetwork.RemovePrinterConnection "\\\\SERVER\DRUCKER1"

If INGROUP ("DRUCKER1") Then

WshNetwork.AddWindowsPrinterConnection "\\SERVER\DRUCKER1"

WshNetwork.SetDefaultPrinter "\\SERVER\DRUCKER1"

End If

 

objNetwork.RemovePrinterConnection "\\\\SERVER\DRUCKER2"

If INGROUP ("DRUCKER2") Then

WshNetwork.AddWindowsPrinterConnection "\\SERVER\DRUCKER2"

WshNetwork.SetDefaultPrinter "\\SERVER\DRUCKER2"

End If

 

'Hier wird dem jeweiligen User in Abhängikeit an welchem PC er sich anmeldet zugwiesen.

'Angenommen der Drucker1 steht im Raum ein und der PC4711 auch dann bekommt er diesen als Standard

If UCase(UserName) = "Meier1" Then

If UCase (ComputerName) = "PC4711" Then

WshNetwork.SetDefaultPrinter "\\SERVER\DRUCKER1"

End If

If UCase (ComputerName) = "PC4712" Then

WshNetwork.SetDefaultPrinter "\\SERVER\DRUCKER2"

End If

End If

 

If UCase(UserName) = "Mueller1" Then

If UCase (ComputerName) = "PC4711" Then

WshNetwork.SetDefaultPrinter "\\SERVER\DRUCKER1"

End If

If UCase (ComputerName) = "PC4712" Then

WshNetwork.SetDefaultPrinter "\\SERVER\DRUCKER2"

End If

End If

Link zu diesem Kommentar

Hallo, wir haben das Problem anders gelöst. Wir haben für jeden Drucker eine Gruppe im Active Directory. Im Anmerkungs-Feld steht der Share des Druckers. Die Computer des Raumes 1 sind nun der Gruppe des Druckers 1 zugeordnet, die Computer des Raumes 2 der Druckergruppe 2. Das Logon-Script des Users liest die Druckergruppe aus, zu der der Computer gehört, liest aus dem Anmerkung-Feld den Share und ruft AddWindowsPrinterConnection auf. Den aktuellen Computer bekommt man leicht aus dem ADdSystemInfo-Objekt.

 

Lg, Oliver

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...