CyberDoc 10 Geschrieben 25. Mai 2007 Melden Teilen Geschrieben 25. Mai 2007 Hi Leute, ich benutze ein VBscript um User im AD anzulegen. Diesen Usern möchte ich gleichzeitig auch die VPN einwahl erlauben. Die Benutzer werden auch schön sauber erstellt. Nur die Einwahlberechtigung wird nicht gesetzt. Wenn ich mir nachher die erstellten User ansehe, ist die RAS Einwahlberechtigung noch immer auf "Verweigert". Hier ist der betreffende Codeabschnitt. Sub BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Dim ouo, b, objGroup Set ouo = GetObject("LDAP://OU=Hotspotuser,DC=MMBBS-WLAN,DC=local") Set objGroup = GetObject("LDAP://cn=Hotspot-Benutzer,OU=Hotspotuser,DC=Domäne,DC=local") Set b = ouo.Create("user", "CN=" & Klasse & " " & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "displayName", Vorname & " " & Nachname b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "userAccountControl", 66082 b.Put "userPrincipalName", Benutzer & "@Domäne.local" b.Put "msNPAllowDialin", "TRUE" 'das sollte funktonieren, tut es aber nicht!!! b.SetInfo b.SetPassword Passwort b.AccountDisabled = False b.SetInfo Hab ich was vergessen? Hat jemand eine Idee? Müssen vielleicht noch andere Werte vorher gesetzt werden? Ich bin für kreative Antworten dankbar. MfG Cyber Zitieren Link zu diesem Kommentar
thorgood 10 Geschrieben 25. Mai 2007 Melden Teilen Geschrieben 25. Mai 2007 Hallo CyberDoc, versuche es mit b.Put "msNPAllowDialin", True thorgood Zitieren Link zu diesem Kommentar
CyberDoc 10 Geschrieben 25. Mai 2007 Autor Melden Teilen Geschrieben 25. Mai 2007 Erstmal Danke für die schnelle Antwort. Das führt zum gleichen Ergebnis. Script läuft sauber durch, User wurden angelegt, aber die Brechtigung zum Einwählen steht noch immer auf "Zugriff verweigern". Auch die Schreibweise des Attributes ändert nix (TRUE, True, true) Ich habe in einem Script von MS folgende Zeile gefunden, die angeblich genau das bewirken soll. objObjectSDO.PutProperty SDO_REMOTE_ACCESS_PERMISSION, true Da ich aber kein Scripting-Guru bin, bekomme ich es nicht zum Laufen. Keine Ahnung wie ich dieses "objObjectSDO" erzeuge?! Ich habe das Beispielscript von MS mal angehängt. Vielleicht kannst du mir sagen, wie die genaue Syntax in meinem Fall aussehen müsste?! Bitte Bitte :D Danke Script.zip Zitieren Link zu diesem Kommentar
thorgood 10 Geschrieben 25. Mai 2007 Melden Teilen Geschrieben 25. Mai 2007 Hast du True OHNE Anführungszeichen angegeben. Welches Betriebsystem hast du ? Wo führst du das Script aus - Server/Workstation ? thorgood Zitieren Link zu diesem Kommentar
CyberDoc 10 Geschrieben 25. Mai 2007 Autor Melden Teilen Geschrieben 25. Mai 2007 Hast du True OHNE Anführungszeichen angegeben. Welches Betriebsystem hast du ? Wo führst du das Script aus - Server/Workstation ? thorgood Das Script läuft auf einem Windows Server 2k3 R2 Standard Edition incl. SP2 und ich hab True ohne "" angegeben. Mit "" hab ichs auch versucht. Zeigt alles keine Wirkung. Ich habe das Gefühl, der Wert hat auf die Einstellung im AD keine Wirkung, denn das Script läuft ja ohne zu meckern durch. Ob sich die User dann faktisch trotzdem einwählen dürfen, hab ich natürlich nicht getestet. Wär mir aber ein Rätzel, wenn das gehen sollte?! Zitieren Link zu diesem Kommentar
Zearom 10 Geschrieben 25. Mai 2007 Melden Teilen Geschrieben 25. Mai 2007 Const ADS_PROPERTY_CLEAR = 1 Const ADS_PROPERTY_UPDATE = 2 Const ADS_PROPERTY_APPEND = 3 Const ADS_PROPERTY_DELETE = 4 b.PutEx ADS_PROPERTY_CLEAR, "msNPAllowDialin", 0 kannst du es mal mit dem stückchen code probieren? Zitieren Link zu diesem Kommentar
CyberDoc 10 Geschrieben 25. Mai 2007 Autor Melden Teilen Geschrieben 25. Mai 2007 Ich habe es in wildem Eifer einfach mal reinkopiert und ausgeführt ohne wirklich zu wissen was ich damit bewirke. Läuft durch, bewirkt aber nichts. Script sieht dann wie folgt aus. ... Sub BenuntzerAnlegen(Benutzer,Vorname,Nachname,Passwort) Dim ouo, b, objGroup Set ouo = GetObject("LDAP://OU=Hotspotuser,DC=Domäne,DC=local") Set objGroup = GetObject("LDAP://cn=Hotspot-Benutzer,OU=Hotspotuser,DC=Domäne,DC=local") Set b = ouo.Create("user", "CN=" & Klasse & " " & Vorname & " " & Nachname) Dim WshShell, ret Set WshShell = WScript.CreateObject("WScript.Shell") b.Put "sAMAccountName", Benutzer b.Put "displayName", Vorname & " " & Nachname b.Put "givenName", Vorname b.Put "sn", Nachname b.Put "userAccountControl", 66082 b.Put "userPrincipalName", Benutzer & "@Domäne.local" Const ADS_PROPERTY_CLEAR = 1 Const ADS_PROPERTY_UPDATE = 2 Const ADS_PROPERTY_APPEND = 3 Const ADS_PROPERTY_DELETE = 4 b.PutEx ADS_PROPERTY_CLEAR, "msNPAllowDialin", 0 b.Put "msNPAllowDialin", True b.SetInfo ... Ohne die Zeile "b.Put "msNPAllowDialin", True" endet das Ganze in einer Fehlermeldung wegen Bereichsverletzung. Zitieren Link zu diesem Kommentar
Zearom 10 Geschrieben 25. Mai 2007 Melden Teilen Geschrieben 25. Mai 2007 ich seh gerade, du legst den benutzer frisch an. versuch diese Option mal erst auszuführen wenn der User wirklich im AD angelegt wurde. Sprich erst mit Create den User mit den Grundeinstellungen anlegen, und danach dem User das Attribut auf 0 setzen. Ob es ausreicht das PutEx nach dem SetInfo zu setzen und danach wieder via SetInfo das Objekt zu synchronisieren, oder ob du den User via Set p = GetObject("LDAP://" & strDN) wieder aus dem AD lesen musst und erst dann das Attribut verändern kannst, muesstest du ausprobieren. Zitieren Link zu diesem Kommentar
CyberDoc 10 Geschrieben 25. Mai 2007 Autor Melden Teilen Geschrieben 25. Mai 2007 Ich dreh hier ab. :D Null Wirkung. Weder direkt nach dem "objekt.SetInfo" noch nach einem erneuten "GetObjekt" ... b.SetInfo Const ADS_PROPERTY_CLEAR = 1 Const ADS_PROPERTY_UPDATE = 2 Const ADS_PROPERTY_APPEND = 3 Const ADS_PROPERTY_DELETE = 4 b.PutEx ADS_PROPERTY_CLEAR, "msNPAllowDialin", 0 b.SetInfo cn = Klasse &" "& Vorname &" "& Nachname objGroup.Add ("LDAP://cn=" & cn & ",OU=Hotspotuser,DC=MMBBS-WLAN,DC=local") Set p = GetObject("LDAP://cn=" & cn & ",OU=Hotspotuser,DC=MMBBS-WLAN,DC=local") p.Put "msNPAllowDialin", True p.SetInfo ... Kann das denn so schwierig sein? :suspect: Zitieren Link zu diesem Kommentar
Zearom 10 Geschrieben 25. Mai 2007 Melden Teilen Geschrieben 25. Mai 2007 erm bitte nach dem GetObject mit der PutEx statt der Put Anweisung. Zitieren Link zu diesem Kommentar
CyberDoc 10 Geschrieben 25. Mai 2007 Autor Melden Teilen Geschrieben 25. Mai 2007 Ja nee! ;) Fehlermeldung... Fehler: Typen unverträglich: 'p.PutEx' Zitieren Link zu diesem Kommentar
Zearom 10 Geschrieben 25. Mai 2007 Melden Teilen Geschrieben 25. Mai 2007 *kopfkratz* ja erm, der code kommt original aus einem Script welches ich *damals* geschrieben hab um User die via Microsoft Identity Integration Server verteilt wurden diese "berechtigung" zu entziehen, und das ging. auch Richard Mueller (MVP für Scripting) hat das vor kurzen noch in einem Forum gepostet. schau dir mal das Script an, eventuell hakts noch an irgendeiner anderen Stelle, ich kanns hier momentan nicht ausprobieren. Global modification of user accounts - Active Directory Zitieren Link zu diesem Kommentar
CyberDoc 10 Geschrieben 25. Mai 2007 Autor Melden Teilen Geschrieben 25. Mai 2007 Danke erstmal... Jetzt brauche ich erstmal ein paar Erfolgserlebnisse, deswegen geh ich vorerst ne Weile sinnvolleren Beschäftigungen nach. z.B. Azubis quälen :D Ich schau mir das heute Nachmittag nochmal an und werd dann mal sehen, ob ich das hinbekomme. Vielleicht schrei ich dann nochmal um Hilfe. Zitieren Link zu diesem Kommentar
Zearom 10 Geschrieben 25. Mai 2007 Melden Teilen Geschrieben 25. Mai 2007 Danke erstmal... Jetzt brauche ich erstmal ein paar Erfolgserlebnisse, deswegen geh ich vorerst ne Weile sinnvolleren Beschäftigungen nach. z.B. Azubis quälen :D ohje :) naja, als ich das script geschreibselt hab war ich auch noch Azubi... hach... die gute alte zeit... Ich schau mir das heute Nachmittag nochmal an und werd dann mal sehen, ob ich das hinbekomme. Vielleicht schrei ich dann nochmal um Hilfe. oke, mach das. bis heute mittag XD Zitieren Link zu diesem Kommentar
CyberDoc 10 Geschrieben 25. Mai 2007 Autor Melden Teilen Geschrieben 25. Mai 2007 Ich habe mir den Link mal angesehen und finde ihn vielversprechend. Mein Problem ist aber, dass ich mit ADO Objekten nichts am Hut habe. Deswegen könnte ich bezüglich der endgültigen Syntax nur herumraten. Hat jemand schnelle Finger und kann das Script aus dem Link an mein Script anpassen bzw. einfügen? Vielleicht wagt sich ja auch nochmal jemand an das MS beispielscript, was ich oben angehängt hatte. Das sah auch gut aus, aber ich bin an der Anpassung gescheitert. Irgendwie raff ich´s nicht. Ich kann nur rumraten. Vielleicht nur zur Info: 1. Ich kann auch im AD (manuell) die Einwahlberechtigung nicht auf "Zugriff über RAS Richtlinie steuern" setzen, denn der Bereich ist ausgegraut. Weshalb auch immer. 2. Die User liegen in einer eigenen OU. Kann es vielleicht damit zusammenhängen? Wär toll wenn wir es zusammen hinbekommen würden. :D 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.