adam33 10 Posted December 15, 2009 Report Share Posted December 15, 2009 Moin, versuche ein vbs zu schreiben, welchen folgendes bewerkstelligt: Lies den aktuell angemeldeten user aus dem LDAP aus, weise diesem ein Netzlaufwerk zu, wenn sich der user in einer bestimmten gruppe befindet, dann weisen diesem bestimmte Drucker zu. Ich versuche die folgendermaßen zu realisieren: Option Explicit Dim obj, domain, objsh, objenv, obj1 Dim Object Dim gruppe,user,objnet Dim objADSys Dim objPCName Dim objUSR Dim Descriptor Dim WshNetwork Dim actusr 'Ermittle den Benutzernamen Set objsh=CreateObject("wscript.shell") Set objenv=objsh.environment("process") user=objenv("username") 'Weise Laufwerke und Drucker zu Set objnet = CreateObject("wscript.network") actusr = objnet.UserName 'Standardnetzlaufwerke zuweisen objnet.MapNetworkDrive "N:", "\\fs01\daten" 'Zuweisen des Homelaufwerks 'objnet.MapNetworkDrive "H:","\\server\home\" & user 'Testen ob aktueller Benutzer Mitglied der Gruppe "LZ-PCs" ist 'Wenn ja --> Laufwerk N: zuweisen Set obj=GetObject("WinNT:" & domain & "/LZ-PCs") If (obj.ismember("WinNT:" & domain & "/" & user)) Then objnet.MapNetworkDrive "N:", "\\fs01\daten" ' Erstellen einer Printerconnection und setzen des Standarddruckers: Set WshNetwork = CreateObject("WScript.Network") WshNetwork.AddWindowsPrinterConnection "\\PrintServer\Ineo 250" WshNetwork.SetDefaultPrinter "\\printserver\Ineo 250" WshNetwork.AddWindowsPrinterConnection "\\PrintServer\HP CLJ CP1510 PCL - Frau Hirsch D3" WshNetwork.SetDefaultPrinter "\\printserver\HP CLJ CP1510 PCL - Frau Hirsch D3" End If 'Testen ob aktueller Benutzer Mitglied der Gruppe "üfa-PCs" ist 'Wenn ja --> Laufwerk N: zuweisen Set obj=GetObject("WinNT:" & domain & "/üfa-PCs") If (obj.ismember("WinNT:" & domain & "/" & user)) Then objnet.MapNetworkDrive "N:", "\\fs01\daten" ' Erstellen einer Printerconnection und setzen des Standarddruckers: Set WshNetwork = CreateObject("WScript.Network") WshNetwork.AddWindowsPrinterConnection "\\PrintServer\Brother HL-5350DN series" WshNetwork.SetDefaultPrinter "\\printserver\Brother HL-5350DN series" WshNetwork.AddWindowsPrinterConnection "\\PrintServer\HPDJ6940-ÜFA" WshNetwork.SetDefaultPrinter "\\printserver\HPDJ6940-ÜFA" End If 'Testen ob aktueller Benutzer Mitglied der Gruppe "BVBI-wuv-PCs" ist 'Wenn ja --> Laufwerk N: zuweisen Set obj=GetObject("WinNT:" & domain & "/BVB-wuv-PCs") If (obj.ismember("WinNT:" & domain & "/" & user)) Then objnet.MapNetworkDrive "N:", "\\bbw-fs01\daten" ' Erstellen einer Printerconnection und setzen des Standarddruckers: Set WshNetwork = CreateObject("WScript.Network") WshNetwork.AddWindowsPrinterConnection "\\PrintServer\HL5250DN-BVB" WshNetwork.SetDefaultPrinter "\\printserver\HL5250DN-BVB" WshNetwork.AddWindowsPrinterConnection "\\PrintServer\HL-4040CN Kfl,BVB" WshNetwork.SetDefaultPrinter "\\printserver\HL-4040CN Kfl,BVB" End If 'Testen ob aktueller Benutzer Mitglied der Gruppe "LZ-D.Hauer-PC" ist 'Wenn ja --> Laufwerk N: zuweisen Set obj=GetObject("WinNT:" & domain & "/LZ-D.Hauer-PC") If (obj.ismember("WinNT:" & domain & "/" & user)) Then objnet.MapNetworkDrive "N:", "\\fs01\daten" ' Erstellen einer Printerconnection und setzen des Standarddruckers: Set WshNetwork = CreateObject("WScript.Network") WshNetwork.AddWindowsPrinterConnection "\\PrintServer\HP CLJCP1510 PCL-IT" WshNetwork.SetDefaultPrinter "\\printserver\HP CLJCP1510 PCL-IT" End If ' Überprüfen des Computers, des Benutzers Set objADSys = CreateObject("ADSystemInfo") Set objPCName = GetObject("LDAP://" & objADSys.ComputerName) Descriptor= objUSR.cn & " ist seit: " & Now & " am Computer: " & objPCName.cn & " angemeldet." On Error Resume Next objPCName.description = Descriptor objPCName.SetInfo objUSR.description = Descriptor objUSR.SetInfo On Error Goto 0 Laufwerk wird gemappt. Es hängt an der benutzdefinierten Druckerzuweisung. Quote Link to comment
fluehmann 10 Posted December 15, 2009 Report Share Posted December 15, 2009 Hallo adam33 Du könntest mal sowas testen: 'Informationen vom AD holen Set objSysInfo = CreateObject("ADSystemInfo") strUserDN = objSysInfo.UserName Set objUser = GetObject("LDAP://" & strUserDN) ' WScript.Echo strUserDN & objSysInfo.ComputerName 'Verbinden von Druckern anhand von Gruppen arrGroups = objUser.GetEx("memberOf") For Each strGroup In arrGroups Set objGroup = GetObject("LDAP://" & strGroup) strGroupName = objGroup.CN Select Case strGroupName 'Verbinden von Druckern Case "ID" objNetwork.AddWindowsPrinterConnection "\\printsvr ", "PrinterDriver" End Select Next 'Standard Drucker setzen objNetwork.SetDefaultPrinter "\\printsvr\blabla" gruss fluehmann Quote Link to comment
NilsK 2,918 Posted December 15, 2009 Report Share Posted December 15, 2009 Moin, ist das eine Scripting-Übung oder willst du ein Ziel erreichen? Falls Letzteres, mach es dir einfacher und nimm GPP. GPP - Group Policy Preferences - Gruppenrichtlinien Einstellungen Gruß, Nils Quote Link to comment
mac-duff 10 Posted December 15, 2009 Report Share Posted December 15, 2009 Ich habe heute im Netz das gefunden: Dim WshNetwork, Uname '//On error resume next '//create WshNetwork object Set WshNetwork = WScript.CreateObject("WScript.Network") Uname = WshNetwork.UserName '//wscript.echo uname If InStr(strGroups, LABELS_GROUP) Then WshNetwork.MapNetworkDrive "l:", "\\testsever\excel\" & Uname & "" End If Quote Link to comment
Stephan Betken 43 Posted December 15, 2009 Report Share Posted December 15, 2009 @mac-duff Du hast aber schon gelesen, dass das Verbinden der Laufwerke bereits funktioniert und es nur bei den Druckern Probleme gibt? Quote Link to comment
Cybquest 36 Posted December 15, 2009 Report Share Posted December 15, 2009 ...zumal das wirklich nur ein Codefragment ist, in welchem die entspr. Variablen bzw. Konstanten (strGroups, LABEL...) ja irgendwo noch gesetzt werden müssten... Zum Problem: Zunächst natürlich erst mal Nils' Vorschlag prüfen :) Ansonsten: bei W9x Clients den Printerdriver mit angeben, wie fluehmann beschrieben hat. Zuletzt: Gibt es eine Fehlermeldung? Steht was im Ereignisprotokoll? Quote Link to comment
adam33 10 Posted December 16, 2009 Author Report Share Posted December 16, 2009 (edited) Ja, die Laufwerke verbindet er schon. Auch einen Drucker verbinden kann ich machen, die Betonung liegt dabei auf einen. Mit der ganzen Verschachtelung der Abfragen komme ich nicht wirklich klar. @NilsK: Danke fuer die Mühe aber es soll schon auf ein vbs hinauslaufen. @fluehmann: ich teste gerade deinen Vorschlag, doch ist das Script nicht transparent genug für einen vbs Änfänger. Wie und wo du den Drucker verbindest sehe ich. Aber die user und Gruppenabfrage ist mir nicht klar. Auch wie ich sagen kann, dass angemeldeter user Mitglied einer bestimmten -gruppe sein muss, um einen bestimmten Drucker zu bekommen. Vielleicht magst du mich bitte erleuchten. EDIT: Mir fehlt doch eigentlich nur das statement fuer: Wenn sich der eingeloggte user in der definierten Gruppe befindet dann verbinde die definierten Drucker. Edited December 16, 2009 by adam33 Nachtrag: Quote Link to comment
adam33 10 Posted December 17, 2009 Author Report Share Posted December 17, 2009 Ok, ich habe immer noch keine akkurate Lösung gefunden. Mittels einer .bat Datei müsste es etwa so funktionieren: @echo off con2prt /f If /i %computername:~0,3%==060011 Goto LB1 If /i %computername:~0,3%==402 Goto UEFA If /i %computername:~0,3%==403 Goto KFL If / i %computername:~0, 3%= = 403 Goto BvBIwuv if /i %computername:-0,3%==403 Goto Daniel End If Goto END :LB1 con2prt / cd \ \ printserver \ HL5250DN - BvB con2prt / cd \ \ printserver \ HL-4040CN Kfl. BVB Goto end :UEFA con2prt / cd \ \ printserver \ BrotherH con2prt /cd \\printserver\HPDJ6940-ÜFA Goto end :KFL con2prt / cd \ \ printserver \ HL2700CN - Kauf con2prt /cd \\printserver\BR2070N-Kauf Goto end :BvBIwuv con2prt /cd \\printserver\druckerraum3 Goto end :Daniel con2prt /cd \\printserver\HP-CLP1515-IT Goto end :end Allerdings wird es seitens anderer Positionen gerne gesehen, wenn ein vbs zustande kommt. Quote Link to comment
NilsK 2,918 Posted December 17, 2009 Report Share Posted December 17, 2009 Moin, gibt es einen Grund dafür, sich unnötige Umstände zu machen für etwas, was mit anderen Methoden viel einfacher geht? "Das soll so" ist ein nicht besonders schlagkräftiges Argument. Gruß, Nils Quote Link to comment
adam33 10 Posted December 18, 2009 Author Report Share Posted December 18, 2009 Doch, ich sehe das als sehr schlagkräftiges Argument an, wenn man den Umstand und die Situation bedenkt, dass einem der Vorgesetzte im Nacken sitzt, der genau dieses, wenn gleich abwegig und umständlich, sehen will. Mein persönlicher Weg sähe anders aus, allerdings ist es wie es ist. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.