Jump to content

User anlegen via VBscript - Einwahl erlauben geht nicht


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
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?!

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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.

Link zu diesem Kommentar

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:

Link zu diesem Kommentar

*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

Link zu diesem Kommentar
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

Link zu diesem Kommentar

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

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...