TheDonMiguel 11 Geschrieben 17. Oktober 2006 Melden Teilen Geschrieben 17. Oktober 2006 Hallo zusammen Ich benötige einen Tipp für mein VBS-Problem. Ich verwende eine VBS-Logon script, welches Aufgrund der Gruppenzugehörigkeit die Laufwerke mappt. If IsMember("APPBS1_Rimo_GG") Then WshNetwork.RemoveNetworkDrive "R:", True, True WshNetwork.MapNetworkDrive "R:", "\\server\share$", True End If Function IsMember(strGroup) Dim objMember, objGroup Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group") If Err.Number = 0 Then IsMember = objGroup.IsMember("WinNT://" & strDomain & "/" & strUser) Else IsMember = false End If End Function Das Problem ist dass wenn mehrere Abfragen nacheinander gemacht werden, was meiner Meihnung nach der Sinn und Zweck dieses Scripts ist, nicht alle mappings durchgeführt werden. Es wird keine Fehlermeldung ausgegegeben. Wenn ich einen check mit "msgbox" einbaue, kommt die Text-Meldung inkl des Mappings. Entferne ich diese Code-Zeile wieder, werden die zusätzlichen Mappings weider nicht mehr hinzugefügt... Kann mir jemand von euch weiterhelfen? Danke & Gruss, TDM Zitieren Link zu diesem Kommentar
Stonecold2k 10 Geschrieben 17. Oktober 2006 Melden Teilen Geschrieben 17. Oktober 2006 Muss du nicht noch die Funktionen einbinden? Ich bin jetzt nicht so der crack in VBS aber ich meine hinter der IsMember muss ja irgendwas stecken und das steht wahrscheinlich wieder in einer Klasse die eingebunden werden muss bin mir aber nicht sicher. Zitieren Link zu diesem Kommentar
TheDonMiguel 11 Geschrieben 17. Oktober 2006 Autor Melden Teilen Geschrieben 17. Oktober 2006 Hallo stonecold2k, Der zweite Teil des Code-Auszug ist die Funktion IsMember. Das verwirrende ist ja, dass die ersten Abfragen funktionieren... Gruss, TDM Zitieren Link zu diesem Kommentar
Stonecold2k 10 Geschrieben 17. Oktober 2006 Melden Teilen Geschrieben 17. Oktober 2006 ah sorry ist noch früh hmm ich sehe jetzt gerade nicht so den Fehler irgendwie! Zitieren Link zu diesem Kommentar
TheDonMiguel 11 Geschrieben 19. Oktober 2006 Autor Melden Teilen Geschrieben 19. Oktober 2006 Was mich irritiert ist, dass die Funktion in den vorhergehenen Abfragen funktioniert. Wenn "on error resume next" ausgeschalten wird, dann kommt auch keine Fehlermeldung,...:shock: Any ideas? Zitieren Link zu diesem Kommentar
TheDonMiguel 11 Geschrieben 20. Oktober 2006 Autor Melden Teilen Geschrieben 20. Oktober 2006 Mir ist noch etwas interessantes aufgefallen: wenn das Script manuell angeworfen wird, dann verbindet sich pro Mal immer ein Laufwerk mehr... Fehlermeldungen gibt es allgemein Keine. :suspect: Also irgendwie kommt mir die Spanisch vor... Zitieren Link zu diesem Kommentar
notesuser3 10 Geschrieben 20. Oktober 2006 Melden Teilen Geschrieben 20. Oktober 2006 Also wenn du On Error Resume Next auschaltest und das Skript auf einen Fehler läuft, dann bricht es ab. Das heißt die nächste Zeile, die z.B. eine Fehlermeldung ausgibt wird nicht mehr angezeigt. Daher erstelle ich in allen meine Funktionen oder Skripte ein eigenes Error Handling. Was mich persönlich etwas irritiert, ist dein Funktionsname. IsMember ist meiner Ansicht nach ein Schlüsselwort und sollte nicht als Funktionsnamen verwendet werden. Gruß Notesuser3 Zitieren Link zu diesem Kommentar
notesuser3 10 Geschrieben 20. Oktober 2006 Melden Teilen Geschrieben 20. Oktober 2006 Hallo zusammen Ich benötige einen Tipp für mein VBS-Problem. Ich verwende eine VBS-Logon script, welches Aufgrund der Gruppenzugehörigkeit die Laufwerke mappt. If IsMember("APPBS1_Rimo_GG") Then WshNetwork.RemoveNetworkDrive "R:", True, True WshNetwork.MapNetworkDrive "R:", "\\server\share$", True End If Function IsMember(strGroup) Dim objMember, objGroup Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group") If Err.Number = 0 Then IsMember = objGroup.IsMember("WinNT://" & strDomain & "/" & strUser) Else IsMember = false End If End Function TDM Du rufst die Funktion auch rekursiv auf, das kann so gar nicht richtig funktionieren. Ändere mal den Functionnamen und rufe Sie entsprechend auf. Notesuser3 Zitieren Link zu diesem Kommentar
TheDonMiguel 11 Geschrieben 20. Oktober 2006 Autor Melden Teilen Geschrieben 20. Oktober 2006 Du rufst die Funktion auch rekursiv auf, das kann so gar nicht richtig funktionieren. Ändere mal den Functionnamen und rufe Sie entsprechend auf. Notesuser3 Hallo notesuser3! Danke für die Hinweise. Funktionsname anpassen krieg ich noch hin, aber kannst du mir beim "rekursiven aufrufen der Funktion" konkreter weiterhelfen? Danke vielmals & Gruss, TDM Zitieren Link zu diesem Kommentar
notesuser3 10 Geschrieben 20. Oktober 2006 Melden Teilen Geschrieben 20. Oktober 2006 Hallo notesuser3! Danke für die Hinweise. Funktionsname anpassen krieg ich noch hin, aber kannst du mir beim "rekursiven aufrufen der Funktion" konkreter weiterhelfen? Danke vielmals & Gruss, TDM Das ist ganz einfach, wobei dies kein echt Rekrusiver Aufruf ist: Aber Deine Funktion heißt bereits IsMember und in der Zeile IsMember = objGroup.IsMember("WinNT://" & strDomain & "/" & strUser) rufst Du die Funktion eigentlich wieder auf, bzw. weißt Ihr einen Wert zu und das kann nicht funktionieren. Daher hatte ich empfohlen die Funktion umzubenennen. Gruß Notesuse3 Zitieren Link zu diesem Kommentar
TheDonMiguel 11 Geschrieben 20. Oktober 2006 Autor Melden Teilen Geschrieben 20. Oktober 2006 Ich habe das Script wie folgt angepasst: If CheckMember("APPBS1_Rimo_GG") Then WshNetwork.RemoveNetworkDrive "R:", True, True WshNetwork.MapNetworkDrive "R:", "\\server\share$", True End If Function CheckMember(strGroup) Dim objMember, objGroup Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group") If Err.Number = 0 Then CheckMember = objGroup.IsMember("WinNT://" & strDomain & "/" & strUser) Else CheckMember = false End If End Function Leider bleibt der Effekt der selbe... Zitieren Link zu diesem Kommentar
notesuser3 10 Geschrieben 21. Oktober 2006 Melden Teilen Geschrieben 21. Oktober 2006 Ich habe das Script wie folgt angepasst:If CheckMember("APPBS1_Rimo_GG") Then WshNetwork.RemoveNetworkDrive "R:", True, True WshNetwork.MapNetworkDrive "R:", "\\server\share$", True End If Function CheckMember(strGroup) Dim objMember, objGroup Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group") If Err.Number = 0 Then CheckMember = objGroup.IsMember("WinNT://" & strDomain & "/" & strUser) Else CheckMember = false End If End Function Leider bleibt der Effekt der selbe... Nun ja, Wo ist den die Variable strDomain und strUser deklariert bzw. woher sollten die beiden Variablen die Werte haben? If CheckMember("APPBS1_Rimo_GG", "domain", "DonMigel") = TRUE Then WshNetwork.RemoveNetworkDrive "R:", True, True WshNetwork.MapNetworkDrive "R:", "\\server\share$", True Else MsgBOX "Der User gehört nicht zu dieser Gruppe",, "Fehler!" End If Function CheckMember(strGroup, strDomain, strUser) Dim objMember, objGroup Set objGroup = GetObject("WinNT://" & strDomain & "/" & strGroup & ",group") If Err.Number = 0 Then CheckMember = objGroup.IsMember("WinNT://" & strDomain & "/" & strUser) CheckMember = TRUE Else CheckMember = false End If End Function So ich habe jetzt ein bisschen was verbessert, was meiner Ansicht nach auf jeden Fall Falsch ist. Leider habe ich nächste Woche Urlaub, sonst würde ich das Skript für Dich testen und Dir die eine fertige Version schicken. Aber probiere es mal mit meinen Änderungen. Du musst nur die Übergabe Parameter anpassen. Gruß Marc Zitieren Link zu diesem Kommentar
TheDonMiguel 11 Geschrieben 27. Oktober 2006 Autor Melden Teilen Geschrieben 27. Oktober 2006 Hallo Marc Aufgrund deines Hinweises habe ich mich nochmals informiert und folgendes Script gefunden: Check Group Membership and Map Drives in a Logon Script Nun wird zuerst die Gruppenmitgliedschaft ausgelesen und dann anhand dem die Laufwerke gemappt. Das Problem war vorhin, dass es ab der Gruppe "X" in einen Timeout lief... Nun funktioniert es. Danke für deine Hilfe! Gruss, TDM Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.