lordshelmchen
Goto Top

Error abfangen

Moin Moin,

ich habe ein kleines VB Script geschrieben, damit Benutzer auf einem Terminalserver (Citrix Published App) ihr Domänenkennwort ändern können.

Hier der entsprechende Teil des Scriptes:

'Verbindung zum AD aufbauen  
Set objConnection = CreateObject("ADODB.Connection")  
Set objCommand    = CreateObject("ADODB.Command")  
Set objRootDSE = GetObject("LDAP://RootDSE")  
strDNSDomain = objRootDSE.Get("defaultNamingContext")  
objConnection.Open "Provider=ADsDSOObject;"  
objCommand.ActiveConnection = objConnection
objCommand.CommandText = "<LDAP://" & strDNSDomain & ">;(&(objectCategory=User)(samAccountName=" & samAccountName & "));distinguishedName;subtree"  

' Kennwort und Kennwort aendern setzen, wenn der Benutzer gefunden wurde  
Set objRecordset = objCommand.Execute
If objRecordset.RecordCount = 1 Then    
	Set objUser = GetObject _
	    ("LDAP://" & objRecordSet.fields("distinguishedName"))  
	objUser.ChangePassword AltesKennwort, NeuesKennwort

end If

Die entsprechenden Variablen werden vorher mittels Inputbox gefüllt.

Wie kann ich da jetzt Fehler abfangen?

Hier kann es dem Benutzer passieren das er ein nicht erlaubtes Kennwort verwendet (diverse Settings aktiv). Dann bricht die Anwendung direkt ab. Jedoch kann ich den Returncode nicht abfangen, das Script wird einfach beendet.

Grüße
LordShelmchen

Content-Key: 87926

Url: https://administrator.de/contentid/87926

Printed on: April 20, 2024 at 16:04 o'clock

Member: SvenGuenter
SvenGuenter May 21, 2008 at 14:41:19 (UTC)
Goto Top
On Error Goto Errorhandler
'Verbindung zum AD aufbauen  
Set objConnection = CreateObject("ADODB.Connection")  
Set objCommand    = CreateObject("ADODB.Command")  
Set objRootDSE = GetObject("LDAP://RootDSE")  
strDNSDomain = objRootDSE.Get("defaultNamingContext")  
objConnection.Open "Provider=ADsDSOObject;"  
objCommand.ActiveConnection = objConnection
objCommand.CommandText = "<LDAP://" & strDNSDomain & ">;(&(objectCategory=User)(samAccountName=" & samAccountName & "));distinguishedName;subtree"  

' Kennwort und Kennwort aendern setzen, wenn der Benutzer gefunden wurde  
Set objRecordset = objCommand.Execute
If objRecordset.RecordCount = 1 Then    
	Set objUser = GetObject _
	    ("LDAP://" & objRecordSet.fields("distinguishedName"))  
	objUser.ChangePassword AltesKennwort, NeuesKennwort

end If

errorhandler:
msgbox(Err.Description)

Gruß

Sven
Member: LordShelmchen
LordShelmchen May 28, 2008 at 13:31:01 (UTC)
Goto Top
Danke für die Antwort,

aber leider bekomme ich dann einen

"C:\Programme\newpwdusr.vbs(24, 15) Kompilierungsfehler in Microsoft VBScript: Syntaxfehler"

Grüße
LordShelmchen