Einzelnen Beitrag anzeigen

Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#13

Re: AD + LastLogon & pwdLastSet - Hilfe!!!!

  Alt 30. Mär 2008, 21:05
Mein Code sieht jetzt so aus:

Delphi-Quellcode:
procedure Tfrm_main.GetADSInfo(suchbegriff : string);
var rs,conn, com : Variant;
    strBase, strFilter, strAttributes, strADS : string;
    ft : TFileTime;
begin
  conn := CreateOleObject('ADODB.Connection');
  com := CreateOleObject('ADODB.Command');
  try
    conn.Provider := 'ADsDSOObject';
    conn.open;
    com.ActiveConnection := conn;
    strBase := '<LDAP://test.com>';

    if rb_name.Checked = TRUE then
      strFilter := '(&(objectCategory=person)(objectClass=user)(displayname='+suchbegriff+'))';

    if rb_lanid.Checked = TRUE then
      strFilter := '(&(objectCategory=person)(objectClass=user)(sAMAccountName='+suchbegriff+'))';

    strAttributes := 'givenname,sn,sAMAccountName,lastLogon,pwdLastSet,badPasswordTime,telephoneNumber';
    strADS := strBase + ';' + strFilter + ';' + strAttributes + ';subtree';
    Com.CommandText := strADS;
    Com.Properties['Page Size'] := 100000;
    Com.Properties['Searchscope'] := 2;
    Com.Properties['Cache Results'] := False;
    rs := Com.Execute;

    if Not rs.EOF then
    begin
      lbl_vorname.Caption := rs.Fields['givenname'].Value;
      lbl_nachname.Caption := rs.Fields['sn'].Value;
      lbl_lanid.Caption := UpperCase(rs.Fields['sAMAccountName'].Value);
     
      // hier passt es immer noch nicht...warum?...keine Ahnung davon
      Int64(ft) := rs.Fields['pwdLastSet'].Value;
      lbl_passwordchange.Caption := DateTimeToStr(FileTimeToDateTime(ft));
    end
    else
      MessageDlg('Kein Datensatz gefunden.',mtInformation,[mbOK],0);
    Rs := NULL;
  finally
    com := NULL;
    conn.Close;
    conn := NULL;
  end;
end;
Großes Fragenzeichen. Wenn ich das so umsetze, kommt die Fehlermeldung, die ich im Screenshot gezeigt habe.
  Mit Zitat antworten Zitat