Jump to content

benutzerdefiniertes mapping


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

Empfohlene Beiträge

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.

Link zu diesem Kommentar

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

Link zu diesem Kommentar

...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?

Link zu diesem Kommentar

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 von adam33
Nachtrag:
Link zu diesem Kommentar

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.

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...