adam33 10 Geschrieben 15. Dezember 2009 Melden Teilen Geschrieben 15. Dezember 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. Zitieren Link zu diesem Kommentar
fluehmann 10 Geschrieben 15. Dezember 2009 Melden Teilen Geschrieben 15. Dezember 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 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 15. Dezember 2009 Melden Teilen Geschrieben 15. Dezember 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 Zitieren Link zu diesem Kommentar
mac-duff 10 Geschrieben 15. Dezember 2009 Melden Teilen Geschrieben 15. Dezember 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 Zitieren Link zu diesem Kommentar
Stephan Betken 43 Geschrieben 15. Dezember 2009 Melden Teilen Geschrieben 15. Dezember 2009 @mac-duff Du hast aber schon gelesen, dass das Verbinden der Laufwerke bereits funktioniert und es nur bei den Druckern Probleme gibt? Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 15. Dezember 2009 Melden Teilen Geschrieben 15. Dezember 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? Zitieren Link zu diesem Kommentar
adam33 10 Geschrieben 16. Dezember 2009 Autor Melden Teilen Geschrieben 16. Dezember 2009 (bearbeitet) 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. bearbeitet 16. Dezember 2009 von adam33 Nachtrag: Zitieren Link zu diesem Kommentar
adam33 10 Geschrieben 17. Dezember 2009 Autor Melden Teilen Geschrieben 17. Dezember 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. Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 17. Dezember 2009 Melden Teilen Geschrieben 17. Dezember 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 Zitieren Link zu diesem Kommentar
adam33 10 Geschrieben 18. Dezember 2009 Autor Melden Teilen Geschrieben 18. Dezember 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. Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.