internal static void PerformChangePassword(string partitionDN, ADObject directoryObj, SecureString oldPassword, SecureString newPassword) { ADSessionInfo sessionInfo = directoryObj.SessionInfo; using (ADAccountManagement aDAccountManagement = new ADAccountManagement(sessionInfo)) { IntPtr bSTR = Marshal.SecureStringToBSTR(oldPassword); string stringUni = Marshal.PtrToStringUni(bSTR); IntPtr intPtr = Marshal.SecureStringToBSTR(newPassword); string str = Marshal.PtrToStringUni(intPtr); aDAccountManagement.ChangePassword(partitionDN, directoryObj.DistinguishedName, stringUni, str); } }