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-ID: 87926

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

Ausgedruckt am: 22.11.2024 um 20:11 Uhr

SvenGuenter
SvenGuenter 21.05.2008 um 16:41:19 Uhr
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
LordShelmchen
LordShelmchen 28.05.2008 um 15:31:01 Uhr
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