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ß
CornY
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ß
CornY
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 278264
Url: https://administrator.de/contentid/278264
Ausgedruckt am: 22.11.2024 um 12:11 Uhr
2 Kommentare
Neuester Kommentar
Hallo CornY,
das könnte etwa so aussehen:
Grüße Uwe
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