var
Usr: IADsUser;
dominio: string;
begin
dominio := frmSessionInit.edt_domain.Text;
try
if not frmSessionInit.chk_another_user.Checked then
ADsOpenObject('WinNT://' + dominio + '/' +
edt_searchcrit.Text, frmSessionInit.cbb_username.Text,
frmSessionInit.edtPassword.Text, 1,
IADsUser, usr)
else
ADsGetObject('WinNT://' + dominio + '/' + edt_searchcrit.Text, IADsUser, usr);
Assert(usr <> nil);
if chk_no_pass_expire.Checked then
Usr.Put('UserFlags', Usr.Get('UserFlags') OR ADS_UF_PASSWD_CANT_CHANGE)
else
Usr.Put('UserFlags', Usr.Get('UserFlags') XOR ADS_UF_PASSWD_CANT_CHANGE);
Usr.SetInfo;
except
on E: EOleException do begin
ShowMessage(E.Message);
end;
end;