1

域 2008 R2,DC。行政人员。DelphiXe2.

我使用 ADOConnection1.SQL 获取用户信息:

从 'LDAP://dc=ru/dc=mydomain/OU= 中选择 extensionAttribute1、extensionAttribute2、cn、sn、givenname、displayName、sAMAccountName、userPrincipalName、mail、标题、电话号码、公司、部门、描述、objectSid、physicalDeliveryOfficeName、userAccountControl User' where objectCategory = 'person' and objectClass='user' and userAccountControl<>514 and userAccountControl<>546 按名称排序

一切正常。我把新用户:

Uses ActiveDs_TLB, ActiveX, ComObj;

..
var  Usr: IADsUser;  Comp: IADsContainer;
begin
try
CoInitialize(nil);
Comp:=GetObject('WinNT://localhost') as IADsContainer;
Usr:=comp.Create('user','Koko') as IADsUser;
usr.SetPassword('Fa123456789');
// usr.FirstName:='Pups';
Usr.SetInfo;
except ..
end;
end;

问题:

  1. 当我添加新用户时,上面的代码正常工作。但是,如果我尝试添加什么或属性,例如 FirstName (unRem usr.FirstName),我会收到错误 E_ADS_SCHEMA_VIOLATION。如何治疗?
  2. 提示,如通过属性 Usr:IADsUser;更改扩展属性,例如“extensionAttribute1”?
  3. 是否可以通过查询ADOConnection1.SQL 的方式添加新用户或更改指定用户的属性?

或者如何正确地在活动目录中添加具有所有属性的用户?

4

1 回答 1

1

创建用户后首先调用 SetInfo,然后再设置密码。

于 2012-06-25T10:39:10.363 回答