Probleme beim Netzlaufwerk- Mapping

  • VBScript

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von Refnex.

    Probleme beim Netzlaufwerk- Mapping

    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!

    Brainfuck-Quellcode

    1. 'Variablen deklarieren
    2. '---------------------------------------------------------------------------------------------
    3. Dim wshNetwork, sUser, sNamegroup, sAdsPath, oUser, oGroup, server, share, fso
    4. Dim driveList, thisList
    5. Set driveList = CreateObject("System.Collections.ArrayList")
    6. Set thisList = CreateObject("System.Collections.ArrayList")
    7. Set fso = CreateObject("Scripting.FileSystemObject")
    8. 'Zuweisung der Server, Shares
    9. '---------------------------------------------------------------------------------------------
    10. server = Array("serverA","serverB","serverC")
    11. share = Array("shareA$", "shareB$", "shareC$")
    12. thisList.Add "Office-A"
    13. thisList.Add "Office-B"
    14. thisList.Add "Office-C"
    15. thisList.Add "Office-D"
    16. ...
    17. 'Objektdefinitionen und Zuweisungen
    18. '---------------------------------------------------------------------------------------------
    19. Set wshNetwork = WScript.CreateObject("WScript.Network")
    20. Set netDrives = wshNetwork.EnumNetworkDrives
    21. sUser = wshNetwork.username
    22. 'Funktion IsMember einbinden
    23. '---------------------------------------------------------------------------------------------
    24. Function IsMember(sGroup)
    25. If IsEmpty(oGroupDict) Then
    26. Set oGroupDict = CreateObject("Scripting.Dictionary")
    27. oGroupDict.CompareMode = vbTextCompare
    28. sAdsPath = WShNetwork.UserDomain & "/" & WShNetwork.UserName
    29. Set oUser = GetObject("WinNT://" & sAdsPath & ",user")
    30. For Each oGroup In oUser.Groups
    31. oGroupDict.Add oGroup.Name, "-"
    32. Next
    33. Set oUser = Nothing
    34. End If
    35. IsMember = CBool(oGroupDict.Exists(sGroup))
    36. End Function
    37. 'Zuweisung der Laufwerksfreigaben (Allgemein)
    38. '---------------------------------------------------------------------------------------------
    39. driveList.Add "[Laufwerksbuchstabe]:,[Policy Group],[Share Pfad]"
    40. ...
    41. ...
    42. 'Beispiel
    43. 'driveList.Add "a:,B-BeispielPolicy,\" & server(0) & "\Freigabe$"
    44. 'Zuweisung der Laufwerksfreigaben (Speziell)
    45. '---------------------------------------------------------------------------------------------
    46. if IsMember("B-" & thisList(0)) Then
    47. driveList.Add "[Laufwerksbuchstabe]:,[Policy Group],[Share Pfad]"
    48. ...
    49. ...
    50. End If
    51. 'Eigentlicher Ausführungscode'
    52. 'Netzlaufwerke trennen
    53. '---------------------------------------------------------------------------------------------
    54. set shell = CreateObject("WScript.Shell")
    55. shell.run "net use * /d /y",0
    56. 'Netzlaufwerke verbinden (nur a und b)
    57. '---------------------------------------------------------------------------------------------
    58. For Each office in thisList
    59. sNamegroup="B-" & office
    60. If IsMember(sNamegroup) Then
    61. WshNetwork.MapNetworkDrive "a:", "\"&server(0)&""&share(0)&""& office &"\Beispiel1"
    62. If fso.Folderexists("\"&server(0)&""&share(0)&""& office &"\Beispiel2" &suser) Then
    63. WshNetwork.MapNetworkDrive "b:", "\"&server(0)&""&share(0)&""& office &"\Beispiel2" &suser
    64. End If
    65. Exit For
    66. End If
    67. Next
    68. 'Netzlaufwerke verbinden (Alle die sich in driveList befinden überprüfen)
    69. '----------------------------------------------------------------------------------------------
    70. for Each element in driveList
    71. 'Hier werden Laufwerksbuchstabe (0), Policy Gruppe (1) und Pfad gesplittet (2)'
    72. arr = Split(element, ",")
    73. If(IsMember(arr(1))) Then
    74. WshNetwork.MapNetworkDrive arr(0), arr(2)
    75. End If
    76. Next



    Ich hoffe Ihr könnt mir weiterhelfen!
    Vielen Dank schonmal =)


    Gruß Exorior