Drucker nach OU oder Gruppe zuweisen
Drucker nach OU oder Gruppe zuweisen, per GP oder VBS
Hallo Admins,
Ich bin auf der Sucher nach einer Lösung für folgendes Problem:
Da wir in unserem Haus sehr viele Drucker haben und es bisher so ist dass alle Benutzer alle Drucker zugewiesen bekommen (per VBS) dauert die Anmeldung natürlich entsprechend lange.
Nun möchte ich das Anmeldescript so modifizieren, dass die Benutzer die Drucker nach Abteilung zugewiesen bekommen. Also zB if [user ist in gruppe edv] then connect printer1, if [user ist in gruppe buchhaltung] then connect printer2 usw.
Natürlich stehen in manchen Abteilungen auch mehr als ein Drucker.
Was ich bis jetzt habe ist folgendes:
Const IT="cn=gruppe edv"
Set funcUser = WScript.CreateObject("WScript.Network")
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
If InStr(strGroups,IT) then
WshNetwork.AddWindowsPrinterConnection PrinterPath
PrinterPath = "\\PRINTERSERVER\PRINTER1"
WshNetwork.AddWindowsPrinterConnection PrinterPath
PrinterPath = "\\PRINTERSERVER\PRINTER2"
End if
Leider scheint das nicht so wirklich zu funktionieren und leider hab ich auch noch nicht wirklich viel Ahnung von VBS. Das obige Script ist auch aus dem bisherigen Script zusammenkopiert.
Vielleicht kann mir jemand kurz erklären was ich dazu brauche bzw was ich falsch mache.
Grüße
Hallo Admins,
Ich bin auf der Sucher nach einer Lösung für folgendes Problem:
Da wir in unserem Haus sehr viele Drucker haben und es bisher so ist dass alle Benutzer alle Drucker zugewiesen bekommen (per VBS) dauert die Anmeldung natürlich entsprechend lange.
Nun möchte ich das Anmeldescript so modifizieren, dass die Benutzer die Drucker nach Abteilung zugewiesen bekommen. Also zB if [user ist in gruppe edv] then connect printer1, if [user ist in gruppe buchhaltung] then connect printer2 usw.
Natürlich stehen in manchen Abteilungen auch mehr als ein Drucker.
Was ich bis jetzt habe ist folgendes:
Const IT="cn=gruppe edv"
Set funcUser = WScript.CreateObject("WScript.Network")
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))
Dim WshNetwork
Set WshNetwork = WScript.CreateObject("WScript.Network")
If InStr(strGroups,IT) then
WshNetwork.AddWindowsPrinterConnection PrinterPath
PrinterPath = "\\PRINTERSERVER\PRINTER1"
WshNetwork.AddWindowsPrinterConnection PrinterPath
PrinterPath = "\\PRINTERSERVER\PRINTER2"
End if
Leider scheint das nicht so wirklich zu funktionieren und leider hab ich auch noch nicht wirklich viel Ahnung von VBS. Das obige Script ist auch aus dem bisherigen Script zusammenkopiert.
Vielleicht kann mir jemand kurz erklären was ich dazu brauche bzw was ich falsch mache.
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 80074
Url: https://administrator.de/contentid/80074
Ausgedruckt am: 25.11.2024 um 01:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo alkobottle!
Soferne Benutzer nur einer Gruppe angehören, wird "Join()" scheitern - versuche es als Ersatz für die Zeile
eher so:
Weiters stimmt die Reihenfolge der Zeilen für die Druckerzuweisung nicht: Damit "PrinterPath" verwendet werden kann, muss die Zuweisung vor "AddWindowsPrinterConnection" erfolgen:
Ansonsten wäre es auch hilfreich, genauere Fehlerbeschreibungen zu erhalten - falls Du "On Error Resume Next" verwendest, solltest Du diese Zeile während der Testphase auskommentieren ...
Grüße
bastla
Soferne Benutzer nur einer Gruppe angehören, wird "Join()" scheitern - versuche es als Ersatz für die Zeile
strGroups = LCase(Join(CurrentUser.MemberOf))
aGroups = CurrentUser.MemberOf
If IsArray(aGroups) Then
strGroups = LCase(Join(aGroups))
Else
strGroups = LCase(aGroups)
End If
Weiters stimmt die Reihenfolge der Zeilen für die Druckerzuweisung nicht: Damit "PrinterPath" verwendet werden kann, muss die Zuweisung vor "AddWindowsPrinterConnection" erfolgen:
PrinterPath = "\\PRINTERSERVER\PRINTER1"
WshNetwork.AddWindowsPrinterConnection PrinterPath
PrinterPath = "\\PRINTERSERVER\PRINTER2"
WshNetwork.AddWindowsPrinterConnection PrinterPath
Ansonsten wäre es auch hilfreich, genauere Fehlerbeschreibungen zu erhalten - falls Du "On Error Resume Next" verwendest, solltest Du diese Zeile während der Testphase auskommentieren ...
Grüße
bastla
Hallo,
wenn Du eoin wenig wartest kannst Du das mit Grproup Policy Preferneces von MS machen, müsste die tage zum Download bereit stehen. ISt der frühere PolicyMaker von Desktopstandard und damit war das wunderbar über Gruppenrichtlinien konfigurierbar.
http://blogs.technet.com/nmercer/archive/2007/11/19/group-policy-prefer ...
Gruß
Egbert
wenn Du eoin wenig wartest kannst Du das mit Grproup Policy Preferneces von MS machen, müsste die tage zum Download bereit stehen. ISt der frühere PolicyMaker von Desktopstandard und damit war das wunderbar über Gruppenrichtlinien konfigurierbar.
http://blogs.technet.com/nmercer/archive/2007/11/19/group-policy-prefer ...
Gruß
Egbert