Hi Leute,
ich habe folgendes Problem:
Und zwar habe ich ein Anmeldeskript erstellt, das wie in der Überschrift schon erwähnt,
für das Mappen von Netzlaufwerken zuständig ist.
Bei den meisten Usern funktioniert dieses auch wunderbar, aber eben nicht bei allen.
Einige User bekommen nach der Anmeldung einfach keine Netzlaufwerke gemappt (allerdings auch keine Fehlermeldung!!).
Führe ich das Skript nach deren Anmeldung manuell aus funktioniert es ohne Fehler.
Die User sind in den richtigen Policy Groups!
Ich hoffe Ihr könnt mir weiterhelfen!
Vielen Dank schonmal =)
Gruß Exorior
ich habe folgendes Problem:
Und zwar habe ich ein Anmeldeskript erstellt, das wie in der Überschrift schon erwähnt,
für das Mappen von Netzlaufwerken zuständig ist.
Bei den meisten Usern funktioniert dieses auch wunderbar, aber eben nicht bei allen.
Einige User bekommen nach der Anmeldung einfach keine Netzlaufwerke gemappt (allerdings auch keine Fehlermeldung!!).
Führe ich das Skript nach deren Anmeldung manuell aus funktioniert es ohne Fehler.
Die User sind in den richtigen Policy Groups!
Brainfuck-Quellcode
- 'Variablen deklarieren
- '---------------------------------------------------------------------------------------------
- Dim wshNetwork, sUser, sNamegroup, sAdsPath, oUser, oGroup, server, share, fso
- Dim driveList, thisList
- Set driveList = CreateObject("System.Collections.ArrayList")
- Set thisList = CreateObject("System.Collections.ArrayList")
- Set fso = CreateObject("Scripting.FileSystemObject")
- 'Zuweisung der Server, Shares
- '---------------------------------------------------------------------------------------------
- server = Array("serverA","serverB","serverC")
- share = Array("shareA$", "shareB$", "shareC$")
- thisList.Add "Office-A"
- thisList.Add "Office-B"
- thisList.Add "Office-C"
- thisList.Add "Office-D"
- ...
- 'Objektdefinitionen und Zuweisungen
- '---------------------------------------------------------------------------------------------
- Set wshNetwork = WScript.CreateObject("WScript.Network")
- Set netDrives = wshNetwork.EnumNetworkDrives
- sUser = wshNetwork.username
- 'Funktion IsMember einbinden
- '---------------------------------------------------------------------------------------------
- Function IsMember(sGroup)
- If IsEmpty(oGroupDict) Then
- Set oGroupDict = CreateObject("Scripting.Dictionary")
- oGroupDict.CompareMode = vbTextCompare
- sAdsPath = WShNetwork.UserDomain & "/" & WShNetwork.UserName
- Set oUser = GetObject("WinNT://" & sAdsPath & ",user")
- For Each oGroup In oUser.Groups
- oGroupDict.Add oGroup.Name, "-"
- Next
- Set oUser = Nothing
- End If
- IsMember = CBool(oGroupDict.Exists(sGroup))
- End Function
- 'Zuweisung der Laufwerksfreigaben (Allgemein)
- '---------------------------------------------------------------------------------------------
- driveList.Add "[Laufwerksbuchstabe]:,[Policy Group],[Share Pfad]"
- ...
- ...
- 'Beispiel
- 'driveList.Add "a:,B-BeispielPolicy,\" & server(0) & "\Freigabe$"
- 'Zuweisung der Laufwerksfreigaben (Speziell)
- '---------------------------------------------------------------------------------------------
- if IsMember("B-" & thisList(0)) Then
- driveList.Add "[Laufwerksbuchstabe]:,[Policy Group],[Share Pfad]"
- ...
- ...
- End If
- 'Eigentlicher Ausführungscode'
- 'Netzlaufwerke trennen
- '---------------------------------------------------------------------------------------------
- set shell = CreateObject("WScript.Shell")
- shell.run "net use * /d /y",0
- 'Netzlaufwerke verbinden (nur a und b)
- '---------------------------------------------------------------------------------------------
- For Each office in thisList
- sNamegroup="B-" & office
- If IsMember(sNamegroup) Then
- WshNetwork.MapNetworkDrive "a:", "\"&server(0)&""&share(0)&""& office &"\Beispiel1"
- If fso.Folderexists("\"&server(0)&""&share(0)&""& office &"\Beispiel2" &suser) Then
- WshNetwork.MapNetworkDrive "b:", "\"&server(0)&""&share(0)&""& office &"\Beispiel2" &suser
- End If
- Exit For
- End If
- Next
- 'Netzlaufwerke verbinden (Alle die sich in driveList befinden überprüfen)
- '----------------------------------------------------------------------------------------------
- for Each element in driveList
- 'Hier werden Laufwerksbuchstabe (0), Policy Gruppe (1) und Pfad gesplittet (2)'
- arr = Split(element, ",")
- If(IsMember(arr(1))) Then
- WshNetwork.MapNetworkDrive arr(0), arr(2)
- End If
- Next
Ich hoffe Ihr könnt mir weiterhelfen!
Vielen Dank schonmal =)
Gruß Exorior