Hej!
Jag sitter och försöker lösa så att inloggade användare ska kunna ändra sina lösenord som är kopplade till deras konton. Siten kör NT-inloggning med lokala konton på webservern.
Som jag har hajjat det så måste man vara inloggad som administratör om man ska kunna änvända sig av metoden changepassword från getobject user.
På följande sätt:
Dim strNTDomain,strUsername,objIADSUser,strOldPassword,strNewPassword
strNTDomain = "Min doman"
strUsername = "Pelle Plutt"
strOldPassword = "Mitt nya lösenord"
strNewPassword = "Mitt nuvarande lösenord"
Set objIADSUser = GetObject("WinNT://" & strNTDomain & "/" & strUsername & ",user")
objIADSUser.ChangePassword strOldPassword,strNewPassword
objIADSUser.SetInfo
objIADSUser = Nothing
Då inte alla användare är administartörer måste jag försöka gå genom administratörskontot när de ska ändra sina lösenord, genom att skapa en container med administartören och sedan hämta ut användaren som ska byta lösenord genom denna.
typ på detta sätt:
strNTDomain = "Min doman"
strAdminUsername = "Administrator"
strAdminPassword = "password"
strClientUsername = "Pelle Plutt"
strOldPassword = "Mitt nya lösenord"
strNewPassword = "Mitt nuvarande lösenord"
'Create a container for the Administrator account
Const ADS_SECURE_AUTHENTICATION = 1
Set objIADS = GetObject("WinNT:").OpenDSObject("WinNT://"& strNTDomain, strAdminUserame,strAdminPassword,ADS_SECURE_AUTHENTICATION)
'Change the user's password through the Administrator container
Set objIADSUser = objIADS.GetObject("user", strClientUsername)
objIADSUser.ChangePassword strOldPassword,strNewPassword
objIADSUser.SetInfo
Set objIADSUser = Nothing
Set objIADS = Nothing
Problemet är då att jag får
An unknown Active Directory object was requested
på raden
Set objIADSUser = objIADS.GetObject("user", strClientUsername)
Som jag har hajjat det ska det kunna gå att redigera lokala konton genom ADSI, men har jag hajjat fel ? Kan man bara hantera konton som ligger i ett active directory via ADSI, som felmeddelandet antyder.