![]() |
Active Directory: Benutzer/Computer mit Anlagedatum?
Hai ihr,
kann mir einer sagen wie ich aus dem AD eine Liste aller Benutzer bzw. aller Computer erzeuge in der zusätzlich zum Namen auch die Organisationseinheit und, ganz wichtig, das Anlagedatum im AD steht? |
Re: Active Directory: Benutzer/Computer mit Anlagedatum?
Hi Sharky,
fast einfach. Ein bissle ADO und eine spezielle Funktion (VBGetObject) erledigen die Aufgabe:
Delphi-Quellcode:
Die Funktion VBGetObject:
procedure TYourForm.btnSearchClick(Sender: TObject);
var Conn: _Connection; Cmd: _Command; RS: _Recordset; Affected: OleVariant; Line: string; Obj: IADsUser; procedure RunQuery(Query: string); begin Cmd.CommandText := Query; // run query and return domain list RS := Cmd.Execute(Affected, EmptyParam, 0); if RS.EOF then Exit; RS.MoveFirst; while not RS.EOF do begin try Obj := VBGetObject(RS.Fields.Item[1].Value) as IADsUser; Line := Format('%s, %s, %s, %s', [RS.Fields.Item[0].Value, RS.Fields.Item[1].Value, RS.Fields.Item[2].Value, Obj.Parent]); mmoReport.Lines.Add(Line); except end; RS.MoveNext; end; end; begin mmoReport.Clear; // create objects Conn := CoConnection.Create; Cmd := CoCommand.Create; // setup objects Conn.Provider := 'ADsDSOObject'; Conn.Open('Active Directory Provider', '', '', 0); Cmd.Set_ActiveConnection(Conn); Cmd.Properties.Item['Page Size'].Value := 1000; Cmd.Properties.Item['Searchscope'].Value := ADS_SCOPE_SUBTREE; RunQuery(edtQuery.Text);
Delphi-Quellcode:
Das Format der Query:
function VBGetObject(const Name: AnsiString): IDispatch;
var BindContext: IBindCtx; Moniker: IMoniker; Eaten: Integer; begin OleCheck(CreateBindCtx(0, BindContext)); OleCheck(MkParseDisplayName(BindContext, PWideChar(WideString(Name)), Eaten, Moniker)); OleCheck(Moniker.BindToObject(BindContext, nil, IDispatch, Result)); end; Zitat:
![]() |
Re: Active Directory: Benutzer/Computer mit Anlagedatum?
Du kannt das ganze über LDAP machen.
Für die Benutzer würde ich folgende LDAP-Attribute verwenden :
|
Re: Active Directory: Benutzer/Computer mit Anlagedatum?
Zitat:
woher kommt denn die Deklaration für IADsUser, CoConnection und CoCommand? |
Re: Active Directory: Benutzer/Computer mit Anlagedatum?
Zitat:
...:cat:... |
Re: Active Directory: Benutzer/Computer mit Anlagedatum?
Zitat:
|
DP-Maintenance
Dieses Thema wurde von "Sharky" von "Windows 9x / ME / 2000 / XP / 2003 / Vista" nach "Sonstige Fragen zu Delphi" verschoben.
Da es zu einem Delphi-Thread wurde verschiebe ich ihn mal. |
Re: Active Directory: Benutzer/Computer mit Anlagedatum?
Sage mal, hast Du was mit dem Download anfangen können und hilft es wie gewollt weiter und viel wichtiger, klappt es bei Dir? ;)
...:cat:... |
Re: Active Directory: Benutzer/Computer mit Anlagedatum?
Zitat:
der Download funktionierte und es klappt wunderbar. Ich weiss jetzt auf die Minute genau wann ein Rechner im AD eingetragen wurde. |
Re: Active Directory: Benutzer/Computer mit Anlagedatum?
Hallo allerseits,
habe das Programm getestet und funktioniert auch gut. Jetzt wollte ich es anpassen, um von einem OpneLDAP-Server einzelne Benutzer aus der Struktur inclusive bestimmter Attribute auszulesen. Aber das gelingt mir überhaupt nicht. Es scheitert schon immer beim Verbindungsaufbau mit dem LDAP-Server. Könnte jemand das o.b. Script für einen externen LDAP-Server anpassen? Danke. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz