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-Key: 278264

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

Printed on: April 23, 2024 at 19:04 o'clock

Member: colinardo
Solution colinardo Jul 24, 2015, updated at Jul 27, 2015 at 16:18:33 (UTC)
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
Member: CornY
CornY Jul 27, 2015 updated at 13:08:07 (UTC)
Goto Top
Perfekt! Super Danke face-smile

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