corny
Goto Top

VBS distinguishedName zu Netzwerkpfad mit Filter

Hallo Leute, ich stehe vor einen Problem und hoffe auf eure Hilfe.

Unsere OU Struktur in der AD ist ab einen gewissen Punkt gleich mit unserer OrdnerStruktur.
Ich möchten das ein Angemeldeter User sich mit seinen Ordner (innerhalb der Ordnerstruktur) verbindet (Netzlaufwerk).

Meine Überlegung war mit einen VBS Script die AD Struktur (distinguishedName des User´s) in einen UNC Pfad umzuwandeln.

Beispiel distinguishedName : CN=test\, Test,OU=Dienststelle,OU=Landkreis,OU=Tatigkeitsbereich,OU=Oberbereich,OU=Verband,OU=Benutzer,OU=Bundesland,OU=Hauptgruppe,OU=Firma,DC=Firma,DC=local

Ab "Oberbereich" ist die Ordnerstruktur gleich. Ich würde mir gerne mit einen VBSScript folgenes Ergebnis wünschen:
Oberbereich\Taetigkeitsbereich\Landkreis\Dienststelle\

So das ich daraus einen UNC Pfad erstellen kann.
\\xxx.xxx.xxx.xxx\Volume1\Oberbereich\Taetigkeitsbereich\Landkreis\Dienststelle\%username%

Man kann aber nicht Pauschal sagen das es 4 OU´s sind - mal mehr mal weniger. Als müsste man alles ab "Verband" ignorieren.

Ist das machbar? alles andere (auslesen des distingushedName und später netzlaufwerk mount) Bastel ich mir zurecht. Leider fehlt mir das nötige knowhow um diese "find und filterscript" zubauen.

Mit freundlichem Gruß face-smile


CornY

Content-ID: 278264

Url: https://administrator.de/contentid/278264

Ausgedruckt am: 22.11.2024 um 12:11 Uhr

colinardo
Lösung colinardo 24.07.2015, aktualisiert am 27.07.2015 um 18:18:33 Uhr
Goto Top
Hallo CornY,
das könnte etwa so aussehen:
'Variablen  
Dim objSysinfo, regex, intMax, strPath, objNetwork, matches
'Objekte  
Set objSysInfo = CreateObject("ADSystemInfo")  
Set objNetwork = WScript.CreateObject("WScript.Network")  
set regex = CreateObject("vbscript.regexp")  
'Regex Settings  
regex.IgnoreCase = True: regex.Global = True
regex.Pattern = "(OU=(.*?),)"  
'Match auf DN ausführen  
set matches = regex.Execute(objSysinfo.UserName)
if matches.Count > 0 then
	for i = 0 to matches.count
		if matches(i).submatches(1) = "Verband" then   
			'Wenn Submatch = Verband Schleife verlassen und Index speichern  
			intMax = i - 1
			Exit For
		End If
	Next
        'Pfad zusammensetzen  
        for i = intMax to 0 Step -1
	    strPath = strPath & "\" & matches(i).submatches(1)  
        Next
        'Pfad um Serverpfad und Username erweitern  
        strPath = "\\xxx.xxx.xxx.xxx\Volume1" & strPath & "\" & objNetwork.UserName  
        'Laufwerk mappen  
        objNetwork.MapNetworkDrive "Z:", strPath, False  
End If
set regex = Nothing
set objNetwork = Nothing
set objSysinfo = Nothing
Grüße Uwe
CornY
CornY 27.07.2015 aktualisiert um 15:08:07 Uhr
Goto Top
Perfekt! Super Danke face-smile

Habs leider erst heute gesehen, aber direkt eingebaut und fertig ! face-smile