jpanse 10 Geschrieben 4. April 2013 Melden Teilen Geschrieben 4. April 2013 Hallo, hallo Ich habe ein Problem welches ich nicht nachvollziehen kann und ich möchte gern wissen warum das Problem auftritt. Unser LogonScript ist ein VBS und liest per Rekursion die Gruppen unserer User aus. Jetzt habe ich unsere Drucker umgezogen und das Script angepasst, dabei ist mir aufgefallen das einige User die Drucker verbunden und richtig zugewiesen bekommen, andere nicht. Also das "'On Error Resume Next" wieder auskommentiert und das "WScript.Echo("Gruppen: " & strGroups)" wieder aktiviert und das Script laufen lassen. Ernüchterung machte sich breit als die Fehlermeldung kam "Active Directory" : Die Verzeichniseigenschaft wurden nicht im Cache gefunden. Danach poppt das Fenster auf mit "Gruppen:" und es steht nichts drin. Jetzt habe ich das mit einem anderen User probiert, da läuft das Script sauber durch und er zeigt die Gruppen an. Also habe ich die User verglichen und keinen Unterschied festellen können, auch das OS spielt keine Rolle. Wenn es bei einem User nicht funktioniert geht es bei XP und auch bei Win7 nicht. Meine DC's sind Server 2008 R2 und ein Server 2003 32 Bit. Ich wundere mich halt warum es bei manchen geht und bei anderen nicht, wo könnte der Fehler liegen? Hier mal noch der Codeschnipsel: 'Setzt das Script bei Fehlern fort 'On Error Resume Next Const E_ADS_PROPERTY_NOT_FOUND = &h8000500D 'Trennen der vorhandenen Netzlaufwerke Set wshNetwork = CreateObject("WScript.Network") Set shell = CreateObject("WScript.Shell") shell.run "net use * /d /y",0 'Wartezeit des Scripts vor Ausführung (5 sek) WScript.sleep 5000 'Auslesen des AnzeigeName des Users. Set objSysInfo = CreateObject("ADSystemInfo") strUserDN = objSysInfo.UserName ' Bind to user object. Set objUser = GetObject("LDAP://" & strUserDN) ' Display user NT name (sAMAccountName), Distinguished Name, ' Common Name, Display Name, first name, and last name. ' The last three might not have values. 'Wscript.Echo "sAMAccountName: " & objUser.sAMAccountName 'Wscript.Echo "Distinguished Name: " & objUser.distinguishedName 'Wscript.Echo "Common Name: " & objUser.cn 'Wscript.Echo "Display Name: " & objUser.displayName 'Wscript.Echo "First Name: " & objUser.givenName 'Wscript.Echo "Last Name: " & objUser.sn 'Festlegen div. Variablen Dim WshNetwork Set WshNetwork = WScript.CreateObject("WScript.Network") Set ObjNetwork = CreateObject("WScript.Network") Set ADSysInfo = CreateObject("ADSystemInfo") Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName) Dim objWshNet Set objWshNet = CreateObject("Wscript.Network") Set objWshNet = Nothing Dim drv, drvpath, drvname 'Ermittlung der Gruppe mit Hilfe einer Rekursion objGroups = CurrentUser.GetEx("memberOf") Dim strGroups Call GetGroupsOfUser(objGroups, strGroups) Private Sub GetGroupsOfUser(ByVal objGroups, ByRef strGroups) For Each strGroup in objGroups Set objCurrentGroup = GetObject("LDAP://" & strGroup) strGroups = strGroups + strGroup + " " On Error Resume Next objCurrentGroups = objCurrentGroup.GetEx("memberOf") If Err.Number <> E_ADS_PROPERTY_NOT_FOUND Then Call GetGroupsOfUser(objCurrentGroups, strGroups) End if Next End Sub 'Umwandlung in Kleinbuchstaben strGroups = lcase(strGroups) WScript.Echo("Gruppen: " & strGroups) Danke und Gruss Thomas Zitieren Link zu diesem Kommentar
Esta 114 Geschrieben 5. April 2013 Melden Teilen Geschrieben 5. April 2013 Hallo jpanse, sorry, wer soll durch deinen Spaghetti-Code durchsehen? Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 5. April 2013 Melden Teilen Geschrieben 5. April 2013 Moin, sorry, wer soll durch deinen Spaghetti-Code durchsehen? dafür kann er nichts - leider stellt die neue Boardsoftware längere Listings immer so dar. @jpanse: Was genau ist das Ziel deines Codes? Wenn es darum geht, Aktionen abhängig davon auszuführen, ob jemand in einer bestimmten Gruppe ist, geht das viel effizienter. Dafür braucht es keine AD-Abfragen im Logonskript. Gruß, Nils Zitieren Link zu diesem Kommentar
Esta 114 Geschrieben 5. April 2013 Melden Teilen Geschrieben 5. April 2013 @Nils, danke. Ich wusste das noch nicht. Zitieren Link zu diesem Kommentar
NorbertFe 2.065 Geschrieben 5. April 2013 Melden Teilen Geschrieben 5. April 2013 Moin, dafür kann er nichts - leider stellt die neue Boardsoftware längere Listings immer so dar. Auf nem ipad sieht's normal aus. ;) Bye Norbert Zitieren Link zu diesem Kommentar
Esta 114 Geschrieben 5. April 2013 Melden Teilen Geschrieben 5. April 2013 @Nobert, Auf nem ipad sieht's normal aus. ;) Bye Norbert grad entdeckt, mit Firefox sieht es auch normal aus. Scheinbar mag der IE (hier 10) das nicht richtig darstellen. Zitieren Link zu diesem Kommentar
iDiddi 27 Geschrieben 5. April 2013 Melden Teilen Geschrieben 5. April 2013 (bearbeitet) Auf nem ipad sieht's normal aus.Ja, wenn man davon absieht, dass die Forensoftware das Kommentarzeichen falsch interpretiert ;) Ich denke, man kann sich behelfen, in dem man am Ende des Kommentares noch mal ein ' -Zeichen setzt. Und das macht er auch auf meinem iPhone. Prüft das bitte noch mal bearbeitet 5. April 2013 von iDiddi Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 6. April 2013 Melden Teilen Geschrieben 6. April 2013 Moin, grad entdeckt, mit Firefox sieht es auch normal aus. Scheinbar mag der IE (hier 10) das nicht richtig darstellen. oh, tatsächlich. Na sowas. Scheint wohl ein Fehler in der Skriptlogik zu sein, denn manchmal sieht man, dass der Text zunächst "roh" dargestellt wird und dann ins Syntax Highlighing wechselt. Anscheinend erzeugt das Code, den der IE10 nicht richtig interpretiert. Gruß, Nils Zitieren Link zu diesem Kommentar
jpanse 10 Geschrieben 8. April 2013 Autor Melden Teilen Geschrieben 8. April 2013 :confused: Na wenigstens konnte ich dazu beitragen scheinbar einen Fehler im Forum zu finden. Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 8. April 2013 Melden Teilen Geschrieben 8. April 2013 Moin, gut, und was ist deine Antwort auf meine Frage? Vielleicht können wir zur Lösung deines eigentlichen Problems ja auch noch was beitragen. Gruß, Nils 1 Zitieren Link zu diesem Kommentar
jpanse 10 Geschrieben 9. April 2013 Autor Melden Teilen Geschrieben 9. April 2013 @NilsK Genau das soll das skript aber machen. Mir ist jetzt lediglich aufgefallen das es bei einigen Usern funktioniert und bei anderen nicht. Obwohl die User im AD gleich konfiguiert sind, jedenfalls augenscheinlich. Gruss, Thmas Zitieren Link zu diesem Kommentar
NilsK 2.958 Geschrieben 10. April 2013 Melden Teilen Geschrieben 10. April 2013 Moin, grummel ... warum können die Leute nicht mal richtig und deutlich antworten? Mit "Genau das soll das skript aber machen" meinst du: "Wenn es darum geht, Aktionen abhängig davon auszuführen, ob jemand in einer bestimmten Gruppe ist"? Dann ist der Ansatz des Skriptes ohnehin falsch, denn die Gruppen im AD sind nicht notwendig die Gruppenmitgliedschaften, die in der jeweiligen Anmeldesitzung gültig sind. Darüber entscheidet das Anmeldetoken, das bei der Anmeldung erzeugt wird. Die Gruppen im AD könnten Änderungen enthalten, die nach der Anmeldung erfolgt sind und daher in der aktiven Session gar nicht gültig sind. Ein effizienter Weg, um zu prüfen, ob jemand Mitglied in der Gruppe "Gruppe47" ist: whoami /groups | find /i "Gruppe47" Für Druckerverbindungen geht es aber noch besser, schneller und fehlerärmer, und zwar über GPP (Group Policy Preferences). Dazu gibt es eigentlich einen super Artikel bei gruppenrichtlinien.de, aber den finde ich gerade nicht. Falls ich ihn wiederfinde, gebe ich Bescheid ... Gruß, Nils Zitieren Link zu diesem Kommentar
jpanse 10 Geschrieben 16. April 2013 Autor Melden Teilen Geschrieben 16. April 2013 Die GPP habe ich mir auch schon angeschaut. Ich denke ich werde es darüber Lösen. Den Artikel habe ich schon gelesen, ausserdem ist es recht selbsterklärend. Die Ursprüngliche Frage war lediglich: Worin der Unterschied liegen könnte das dass Script bei einem User die Gruppen in denen er Mitglied ist ausliest und bei dem Anderen nicht. Im AD gleichen sie sich, ich muss wohl mal mit LDAP da ran...irgendwo ist da noch ein Fehler drin und der ist über die GUI nicht zu sehen. Jetzt könnte man der Thread eigentlich schliessen... 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.