1

ドメイン 2008 R2、DC。管理者。DelphiXe2.

ADOConnection1.SQL を使用してユーザーの情報を取得します。

「LDAP://dc=ru/dc=mydomain/OU= から extensionAttribute1、extensionAttribute2、cn、sn、givenname、displayName、sAMAccountName、userPrincipalName、mail、title、telephonenumber、company、department、description、objectSid、physicalDeliveryOfficeName、userAccountControl を選択します。 user' where objectCategory = 'person' and objectClass='user' and userAccountControl<>514 and userAccountControl<>546 order by name

すべて正常に動作します。私は新しいユーザーを置きます:

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 によって新しいユーザーを追加したり、指定したユーザーのプロパティを変更したりできるかどうか。

または、Active Directory にすべての属性を持つユーザーをどのように正しく追加するのでしょうか?

4

1 に答える 1

1

ユーザーを作成したら、パスワードを設定する前に SetInfo を呼び出します。

于 2012-06-25T10:39:10.363 に答える