koluschkib
Goto Top

Pw aus .csv-datei mit vbs generieren

hey admin freunde,

hab dein ein problem was denn syntax eines befehls angeht

ich soll aus user im ad anlegen, die user befindet sich in einer csv datei. an sich kein problem.
dem user soll aber ein eindeutiges password zu geordnet werden.
meien idee Left(vorname,3)&left(nachname,2)+1234

bsp
user Hans Maulwurf

pw beim ersten anmelden = hanma1234

was ich mich noch frage ist, wie das pwd generiert wird wenn die anfangsbuchstaben groß sind, wird es nicht berücksichtigt? oder muss man bei der ersten PW eingabe darauf achten, dass man HanMa1234 eingibt?

hab folgendes gefunden und in mein script eingebaut

Set objUser = GetObject  ("LDAP://cn=usersdc=testad,dc=int")  
objUser.SetPassword "left(vorname,3)&left(nachname,2)+1234"  
objUser.SetInfo

das problem ist, wenn ich das script aus führe. kriege ich denn fehler SetPassword ist keine Eigenschaft oder Methode.
und ich weiss nicht woran es liegt bzw. was ich falsch mache.

beim anlegen der user mit allem beschriebung usw. wird folgender syntax verwendet:

objUser.Put "givenName", Nachname  

ich hab nantürlich gehofft, dass es sowas für das password auch gibt. aber leider nirgens was gefunden
meine idee sah so aus

objUser.Put "pwd", left(vorname,3)&left(nachname,2)+1234  

gibt es sowas einfaches? kann mir das einer sagen? oder evtl. wie man es am einfachsten macht?

gruß

koluschki

Content-ID: 143534

Url: https://administrator.de/forum/pw-aus-csv-datei-mit-vbs-generieren-143534.html

Ausgedruckt am: 20.12.2024 um 07:12 Uhr

Edi.Pfisterer
Edi.Pfisterer 26.05.2010, aktualisiert am 18.10.2012 um 18:42:17 Uhr
Goto Top
Hallo koluschki!
Ich sehe, Du wagst Dich an immer schwierigere Aufgaben heran und auch Deine Ablehnung scheint sich in der Zwischenzeit verflüchtigt zu haben!
Das freut mich!

Hier ein Lösungsansatz:

   Passwort = left(vorname,3)&left(nachname,2)+1234
   Passwort = LCase(passwort)

    Set usr = ThisOU.Create("user", "CN=" & MUsername)   
    usr.Put "samAccountName", MUsername   
    usr.Put "userPrincipalName", MUsername & "@" & DomainString   
    usr.Put "homeDirectory", "\\" & ServerName & "\" & LoesungsShare & "\" & ZielOU & "\" & MUsername   
    usr.Put "homeDrive", LoesungsDrive   
    usr.Put "scriptPath", LoginScript   
    usr.SetInfo 
    usr.SetPassword Passwort 

UCase = Großbuchstaben
LCase = Kleinbuchstaben

lg

Edit: das Orignalscript haben wir hier
koluschkiB
koluschkiB 26.05.2010 um 11:25:22 Uhr
Goto Top
hey Edi,

ja, was heisst schwierige aufgaben, es muss voran gehen irgendwie mit meiner aufgabe. aber das ende ist langsam in sicht
abneigung kann man es nicht sagen, ich hab schon idee aber es ist blöd, wenn man ne frage hat immer drauf hingewiesen zu werden, dass man die lösung in eienr datei (.chm) findet. ja das ist ganz toll, aber wie in diesem bsp mit dem PWD, funktioniert es nicht, was ich aus der .chm datei geholt habe

muss man den ganzen code in das script einbauen um nur ein password zu generieren?

oder kann ich die ganze sachen wie AccounName bis ScriptPath einfach weglasen?

die sachen habe ich ja schon in denn Eigenschaften im AD bei Benutzer reinschreiben lassen

Set objOU = GetObject("LDAP://cn=users,dc=testad,dc=int")  
Set objUser = objOU.Create("user", "CN=" & Vorname & " " & Nachname)  
objUser.Put "sAMAccountName", Nachname  
objUser.Put "displayName", Vorname & " " & Nachname  
objUser.Put "givenName", Vorname  
objUser.Put "sn", Nachname  
objUser.Put "description", Abteilung  
objUser.Put "userPrincipalName", left(Vorname,3) & left(nachname,2) & "@testAD.int"  
objUser.Put "userAccountControl", 544  
objUser.SetInfo

kann ich einfach aus dem usr = objUser machen und das objUser.SetPassword und das in die zeilen einbauen?
quasi so:
Passwort = left(vorname,3)&left(nachname,2)+1234
Passwort = LCase(passwort)

Set objOU = GetObject("LDAP://cn=users,dc=testad,dc=int")  
Set objUser = objOU.Create("user", "CN=" & Vorname & " " & Nachname)  
objUser.Put "sAMAccountName", Nachname  
objUser.Put "displayName", Vorname & " " & Nachname  
objUser.Put "givenName", Vorname  
objUser.Put "sn", Nachname  
objUser.Put "description", Abteilung  
objUser.Put "userPrincipalName", left(Vorname,3) & left(nachname,2) & "@testAD.int"  
objUser.Put "userAccountControl", 544  
objUser.SetInfo
objUser.SetPassword Passwort

danke im vorraus

koluschkiB
koluschkiB
koluschkiB 26.05.2010 um 11:28:06 Uhr
Goto Top
hey edi,

habs mal getestet

Fehler ---> Typen unverträglich (String: Die 2 Buchstaben vom Nachnamen)
im code
Passwort = left(vorname,3)&left(nachname,2)+1234

verstehe auch ich nicht so ganz warum er das macht, beim Vornamen gibt es anscheinend keine probleme sonst hätte er ja auch gemeckert...

hast du vielleicht ne idee?
koluschkiB
koluschkiB 26.05.2010 um 11:33:59 Uhr
Goto Top
ich hab die lösung hab es in "" gesetzt quasi so

Passwort = "left(Vorname,3)&left(Nachname,2)+1234"

ob das PW nun gesetzt ist, kann ich nicht sagen. gibt es ne möglichkeit das mal heraus zu finden? so dass ich dann sich sein kann, dass das PW wirklich da ist?
ich arbeite mit VMWare, somit ist ein RealTest nicht wirklich möglich

und es kam keine fehlermeldung, was mr aber aufgefallen ist. dass in den Eigenschaften des Benutzers das häckchen raus ist, dass der User bei der Ersten Anmeldunmg das PW änder muss... komisch komisch

ich hab denn befehl mit drinne

objUser.Put "userAccountControl", 544  
wobei die 544 dafür steht, dass der Account Activ ist und das PW bei der erst Anmeldung geändert werden muss
Edi.Pfisterer
Edi.Pfisterer 26.05.2010 um 11:45:49 Uhr
Goto Top
Hallo!
Muss leider wieder weg, daher nur ganz kurz:
Ein Fehler steckt jedenfalls in
Passwort = left(vorname,3)&left(nachname,2)+1234
da Du das & mit dem + verwechselt hast.

richtig muss es lauten:
Passwort = left(vorname,3) & left(nachname,2) & 1234

mit Hochkomma vor und hinter dem String führt zwar zu keiner Fehlermeldung, dafür lautet nun das Passwort
left(Vorname,3)&left(Nachname,2)+1234
und das werden Deine User wohl kaum richtig eintippen können! face-wink

zu Deiner Frage, ob Du objUsr und Usr einfach tauschen kannst (ohne dass ich Deine Frage bis ins Detail gelesen habe - wegen Zeitmangels...):
YES, YOU CAN face-wink
da du
Set objUser = objOU.Create("user", "CN=" & Vorname & " " & Nachname)
frei definierst, kann es auch
SET User = objOU.Create("user", "CN=" & Vorname & " " & Nachname)
oder ganz anders
Set HEINZI = objOU.Create("user", "CN=" & Vorname & " " & Nachname)
heissen...

gratuliere zum bisherigen Ergebnis
lg
Edi
koluschkiB
koluschkiB 26.05.2010 um 12:10:05 Uhr
Goto Top
hey und danke für die gratulation

habs getestet, zwar gibt er mir keine fehler diesbezüglich, dafür aber nen anderen face-smile

wenn ich das kennwort so mache:

Passwort = left(vorname,3) & left(nachname,2) & 1234

krige ich die meldung, dass das PWD nicht denn Kennwortrichlineien entspricht. ich soll die länge bzw die Komplexität prüfen.
ich hab aber 9 Zeichen = 5 Buchstaben und 4 Zahlen. also weiss ich nicht was Windows daran auszusetzen hat

meine Idee ist es, einfach hinter der letzten Zahl ein % zu setzen.

was so ausschaut hanma1234%

kriege aber wieder den fehler, dass % ein unerlaubtes zeichen ist.

kann ich denn das % einfach in "" setzen, damit er es annimmt?

was mir vorhin auch aufgefallen ist, dass das Konto deaktiviert wird und das häckchen bei "Pw beim nächsten login ändern" nicht gesetzt ist. hab das jetzt bisschen bearbeitet, zwar ist das konto nun wieder Activ, dafür fehlt der Hacken beim PW ändern

es ist echt zu verzweifeln
koluschkiB
koluschkiB 26.05.2010 um 12:33:56 Uhr
Goto Top
hey leuts,

das problem mit dem Deaktivierten Konto und demHacken habe ich gelöst, nun steck eich immer noch bei diesem einem sonderzeichen fest, hoffe einer von euch kann mir dabei helfen

gruß

koluschki
bastla
bastla 26.05.2010 um 12:42:04 Uhr
Goto Top
Hallo koluschkiB!

Wenn es nun kein "%" sein darf, dann nimm doch etwas anderes - zB
<code t<pe="plain">Passwort = left(vorname,3) & left(nachname,2) & "1234#"

Grüße
bastla
Edi.Pfisterer
Edi.Pfisterer 26.05.2010 um 12:43:06 Uhr
Goto Top
Hallo!
Die Kennwortrichtlinien sind in der Default Domain Policy geregelt, das wird (vermutlich) eines Deiner nächsten Betätigungsfelder werden...

Zum Sonderzeichen:

Passwort = left(vorname,3) & left(nachname,2) & 1234

ergibt bei der Annahme
vorname = "sepp"
nachname = "Huber"

sepHu1234

bzgl Groß- und Kleinschreibung daher
Passwort = LCase(Passwort)

dann wirds

sephu1234

wenn Du nun ein Sonderzeichen - von mir aus % anhängst, ist das ja wieder ein Textzeichen

Merke auf:
Text innerhalb von Hochkomma
Zahlen (wenn du damit rechnen möchtest, ansonsten ists nicht nötig) OHNE Hochkomma

Da du mit dem Passwort nicht mehr rechnest, ginge daher

Passwort = left(vorname,3) & left(nachname,2) & "1234%"

auch funktionieren würde

Passwort = left(vorname,3) & left(nachname,2) & 1234 & "%"

Hoffe, etwas Licht in die Sache gebracht zu haben

btw: mir ist aufgefallen, du bist schon öfter am & bzw. an den Hochkomma "gescheitert"...

Merksatz also zur Variablendeklaration:
TEXT --> mit hochkomma
Ziffern --> WENN ZUM RECHNEN --> ohne Hochkomma
Variablen mit einander verbinden --> &
Variablen mit Text oder Zahlen verbinden --> &

lg
Edi
koluschkiB
koluschkiB 26.05.2010 um 12:58:24 Uhr
Goto Top
hey bastla,

also das % geht schon. ich hab aber die "" nicht miteingetippt. somit hat er da gemeckert.
dein bsp. war gut und führte zu keinem fehler face-smile
hab aber statt # % genommen

danke noch mal
koluschkiB
koluschkiB 26.05.2010 um 13:04:43 Uhr
Goto Top
hey Edi,

hab deine bsp. getestet

Passwort = left(vorname,3) & left(nachname,2) & 1234 & "%"  

geht leider nicht er sagt mir, dass er ein zeichenende zwischen ) und &12... erwartet. aber wenn ich &"1234%" nehmen geht alles wunderbar.
leider kann man es nicht einsehen, ob das pw wirklich so generiert wurde, wie der plan war. aber soll mir egal sein face-smile evtl. kann ich es in die logfile schrieben lassen, die am ende erstellt werden soll... schauen wir einfach mal
es ist ne übung, die nicht in wirklichkeit getestet wird. somit egal.
und ja, du hast recht die "" bereiten mir schon hin und wieder probleme.
ich wusste auch nicht dass wenn ich, Passwort = "left(vorname,3) & left(nachname,2) & 1234 & "%"" nehme, er das was in "" steht komplett als PW nimmt, für denn virtuelen user wäre das schon ziemlich blöd, das stimmt.

in der domain Default policy werde ich nicht drin rumfirckeln, dass ist nicht meine aufgabe.

es ist jetzt nru noch eine sache die fehlt um mich ans ziel zu bringen.

ich muss auf die benutzerordner die angelegt werden zugriffsrechte verteilen. bin auch schon aum durchforsten der .chm dateien
ich denke aber, wir lesen noch voneinander face-smile

danke

koluschkiB
Edi.Pfisterer
Edi.Pfisterer 26.05.2010, aktualisiert am 18.10.2012 um 18:42:17 Uhr
Goto Top
Hallo!
Schau doch nochmal das Skript hier an:
Wie gestalte ich eine Prüfung unter Verwendung eines AD so, dass Zusammenarbeit der Prüflinge möglichst verhindert wird?
Da findest Du nebst einem Zufallsgenerator für ein Passwort auch gleich den Teil für die Rechtevergabe
CACLS ist der entsprechende Befehl

lg
Edi