Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

VBS-Script mit Benutzerdialog zum PW ändern in einer 2003er AD-Domäne

Frage Entwicklung VB for Applications

Mitglied: JoshuaTree

JoshuaTree (Level 1) - Jetzt verbinden

17.05.2006, aktualisiert 21.06.2006, 8397 Aufrufe, 12 Kommentare

Hallo,

bin immer noch auf auf der Such nach einer Lösung um meinen Useren es zu ermöglichen ich komfortabel ihr AD Passwort zu ändern.
Anfangs wollte ein Progi bzw. CGI mit Perl basteln, davon bin ich weg jetzt hänge ich bei VBS.

Leider mit noch sehr wenig Erfahrung in VBS.

Gedacht ist es so das der user das Script startet, entweden eingebettet in einer HTML/HTA Seite oder direkt. Dazu sind ja bekanntlich ein paar Abfragen notwendig. Altes Passwort,
neues PW und PW wiederholung.
Das wollte ich jetzt mit dem folgenden Script tun

option explicit


dim username, passwort1, passwort2, objChild, objUser


Set objUser = GetObject _
("LDAP://cn=username,cn=users,dc=blabla,dc=blabla,dc=local")
objUser.ChangePassword "passwort1", "passwort2"




username=inputbox("Bitte eintragen","Username")
passwort1=inputbox("Passwort eingeben","Passwort 1")
passwort2=inputbox("Bitte Passwort wiederholen","Passwort 2")



Beim LDAP-Bind im Pfad würde ich gerne eine Variable verwenden,
das blöde Script erzählt mir aber das es dieses Objekt nicht gibt. Klar
im AD existiert kein 'Username' das soll die Variable bei der Abfrage bringen
genau so beim Passwort1 und Passwort2.

Kann mir mal jemand einen hint geben. Dreh noch durch mit dem Mist.


Offtopic:
Brauche ein gescheites Buch über VBS, kennt jemand eins?


Gruss
Andreas
Mitglied: maneich
17.05.2006 um 14:50 Uhr
Hallo,

wenn Du die 3 InputBox Zeilen vor die Zeile Set objUser = GetObject setzt, müßte es klappen.

So kann es ja nichts werden, da die Variablem noch nicht definiert sind.

Du könntest höchstenfalls mit Functions arbeiten, dann wird direkt im AP abgefragt :


Set objUser = GetObject _
("LDAP://cn=username,cn=users,dc=blabla,dc=blabla,dc=local")
objUser.ChangePassword pw_old_new


Function username
username = InbutBox("Bitte eingeben: Username ")
End Function

Function pw_old_new
pw1 = InputBox("Eingabe altes Passwort: ")
pw2 = InputBox("eingabe neues Passwort: ")
pw_old_new = pw1, pw2
End Function
Bitte warten ..
Mitglied: JoshuaTree
17.05.2006 um 15:00 Uhr
Hi,

danke für die Hilfe.

Beim Testen erzählt er mir a nach pw_old_new = pw1, pw2 wird ein Abschluss erwartet und b "C:\test.vbs(1, 1) (null): Ein solches Objekt ist auf dem Server nicht vorhanden."

Ne Idee. Bla bla habe ich natürlich dur die Domäne ersetzt
Bitte warten ..
Mitglied: maneich
17.05.2006 um 16:55 Uhr
Hallo,

das a) war natürlich ein Fehler von mir, Zeichen zwischen Variablen müßen in Hochkomma gesetzt werden. Diese Zeile muß dann so aussehen:

pw_old_new = pw1 & ", " & pw2

Zu b) kann ich nur raten:

C:\Test.vbs ist der Name Deines Scripts.

(1,1) ist die Zeilen- und ZeichenStelle und (null) bedeutet objUser ist leer.

Wenn "Set objUser = GetObject" die erster Zeile ist mußt Du dahinter einen Unterstrich setzen, da die zweite Zeile eigentlich zur ersten gehört und die Verbindung durch dieses "_" Zeichen erkannt wird. Also

Set objUser = GetObject "_"
("LDAP://cn=username,cn=users,dc=blabla,dc=blabla,dc=local")

könntest theoretisch auch schreiben

Set objUser = GetObject("LDAP://cn=username,cn=users,dc=blabla,dc=blabla,dc=local")

Diese Zeichen natürlich ohne Hochkomma wird aber hier nicht anders dargestellt.

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: JoshuaTree
23.05.2006 um 15:25 Uhr
Weitere deppenfrage wie stelle ich den ein Komma oder ähnliches zwischen
zwei Variablen dar?

Like this: MsgBox pw1,pw2

pw1 und 2 sind Variablen dazwischen hätte ich gerne ein Komma oder sonst was.


und noch was.
muß man in VB-Script irgend ein Zeichen abschneiden nach der Abrage eines Parameters durch eine inputbox.
Bei Perl muß man bei der <STDIN> das CR/LF durch ./n abtrennen.
Denn ich bekomme ständig die Fehlermeldung das der Parameter der übergeben wird nicht mit dem Orginal übereinstimmt. Das habe ich natürlich überprüft und das Orgingal ist gleich der Eingabe in die Inputbox.

*grübel*

Thx
Andreas
Bitte warten ..
Mitglied: maneich
23.05.2006 um 20:00 Uhr
Hallo,

nun ja, wenn Du Dir meinen letzten Thread genau anschaust, kannst Du das, was Du heute als Frage stellst, bei "pw_old_new..." erkennen.

Deine zweite Frage verstehe ich nicht ganz. Abtrennen oder abschneiden muß man in VBS nichts, z.B.:

x = InputBox("eingabe Parameter x:")

was in Klammer steht wird angezeigt und auf eine Eingabe gewartet.

Mußt evtl. mal das Original einlesen und anzeigen lassen, evtl. auch die Stringlänge vergleichen. Möglicherweise hat das Original vorne oder hinten noch eine Leerstelle oder Du übergibst in der InputBox nicht die richtige Länge.

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: JoshuaTree
30.05.2006 um 10:07 Uhr
@maneich

sory wer lesen kann....


Das mit dem abschneiden der cr/lf (carriage return/line feet) ist dann wohl nur beim Perl
schade auch aber dann bin ich immer noch nicht da wo ich hin will.

*
call main


Sub main()

WshUserName = InputBox ("Bitte eingeben: Username ")
'Set WshShell = WScript.CreateObject("WScript.Shell")
'WshUserName= WshShell.ExpandEnvironmentStrings("%username%")
MsgBox WshUserName

pw1 = InputBox("Eingabe altes Passwort: ")
pw2 = InputBox("eingabe neues Passwort: ")
pw_old_new = "pw1, pw2"

Set objUser = GetObject("LDAP://cn=" & WshUserName & ",cn=users,dc=bla,dc=bla,dc=local")
objUser.ChangePassword "pw1", "pw2"

End Sub


pw1 soll dem alten Passwort entsprechen debugger erzählt mir das das PW falsch ist, ist es aber nicht
dehalb vermutete ich das irgend ein unsichtbares Zeichen übertragen wird das mir die Suppe versalzt.

Jemand eine idee?
Bitte warten ..
Mitglied: maneich
30.05.2006 um 20:54 Uhr
Hallo,

pw1 bzw. pw2 sind Variable.

Wenn Du diese mit Hochkomma angibst "pw1", liest VBS nur pw1 (also den Variablennamen) und nicht den Inhalt.

Variable müßten ohne Hochkomma erkannt werden; ansonsten wenn trotzdem Hochkomma verlangt werden, dann so

Chr(34) & pw1 & Chr(34)

Damit wird der Inhalt von pw1 gelesen und in Hochkomma gesetzt.

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: JoshuaTree
31.05.2006 um 10:31 Uhr
.....dein eine Problem Geht das neu kommt


so funktioniert es :

Call main


Sub main()
Dim pw_old_new
WshUserName = InputBox ("Bitte eingeben: Username ")

pw1 = InputBox("Eingabe altes Passwort: ")
pw2 = InputBox("Bitte Passwort wiederholen")
pw_old_new = pw1 & "," & pw2


Set objUser = GetObject("LDAP://cn="& WshUserName &",cn=users,dc=bla,dc=bla,dc=local")
objUser.ChangePassword pw_old_new

End Sub
**

Jedoch erwartet die AD-Schnittstelle Hochkommas like this:
objUser.ChangePassword "i5A2sj*!", "jl3R86df"

Parameter 1 ist altes Passwort Parameter 2 ist neues Passwort.

Wie bekomme ich jetzt die Hochkommas um ----pw_old_new = pw1 & "," & pw2-----.

Im Moment stellt er das so dar: pw1,pw2
So wie ursprünglich gewünscht. ADSI will aber es so : "pw1", "pw2"

Hilfeeeee

PS:
Brauche immer noch ein Buch über VB-Script, bitte um eine Empfehlung.
Bitte warten ..
Mitglied: maneich
31.05.2006 um 13:14 Uhr
Hallo,

war doch bereits genau erklärt:

pw_old_new = Chr(34) & pw1 & Chr(34) & ", " & Chr(34) & pw2 Chr(34)

wenn Komma ebenfalls in Hochkomma gesetzt sein muß dann:

pw_old_new = Chr(34) & pw1 & Chr(34) & "", "" & Chr(34) & pw2 Chr(34)

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: JoshuaTree
31.05.2006 um 13:45 Uhr
Was ist der Unterschied zwischen der Benutzung von chr(34) und dem Anführungszeichen(hochkommas)?
Wenn ich die Komma so rein schreibe erzählt er mir "Anweisungsende erwartet" in der Zeile !?

danke für deine Hilfe
Bitte warten ..
Mitglied: n4426
19.06.2006 um 20:46 Uhr
Hallo,

hab mal ne frage.

Ist es möglich, das bei der eingabe das Passwort nicht im Klartext (123456789) angezeigt wird, sondern als Sternrech (*)? Dann währe nicht schlecht, wenn er das neue Passwort zweimal abfrag und dann überprüft, ob es identisch ist.

Hat eine von euch ne idee?

Mit freundlichen Grüßen
andi
Bitte warten ..
Mitglied: JoshuaTree
21.06.2006 um 14:25 Uhr
Hi,

ja das geht wenn du es mit HTA bzw. hmtl abfackelst und als <input type="password"> nimmst.

Gruss
Andreas
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
VB for Applications
VBS Script zum versenden mehrerer Verknüpfungen zu Dateien per Lotus Notes

Frage von Sentinel87 zum Thema VB for Applications ...

Batch & Shell
gelöst VBS Script in eine Textdatei ausgeben (VBS mit Batch zusammenführen) (5)

Frage von Luuke257 zum Thema Batch & Shell ...

VB for Applications
gelöst VBS Script kann Prgramm nicht starten (15)

Frage von C.Boerner zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...