Jump to content
Sign in to follow this  
CyberDoc

User anlegen via VBscript - Einwahl erlauben geht nicht

Recommended Posts

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Hast du True OHNE Anführungszeichen angegeben.

 

Welches Betriebsystem hast du ?

Wo führst du das Script aus - Server/Workstation ?

 

thorgood

Share this post


Link to post
Share on other sites
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?!

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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:

Share this post


Link to post
Share on other sites

*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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte überlege Dir, ob es nicht sinnvoller ist ein neues Thema zu erstellen.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...