![]() |
Domains auflisten über COM & ActiveDirectory
Hallo,
folgenden Code nutze ich um alle Domains im Netz aufzulisten:
Delphi-Quellcode:
Klappt auch alles.
var C: IADsContainer;
Enum: IEnumVariant; Element: OleVariant; IAD: IADs; Count: ULONG; begin CoInitialize(nil); C:=nil; Enum:=nil; if not SUCCEEDED(ADsGetObject('WinNT:', IID_IADsContainer, C)) then raise Exception.Create('Cannot Get Object'); if not SUCCEEDED( ADsBuildEnumerator(C, Enum) ) then raise Exception.Create('Cannot build enumerator'); while SUCCEEDED(ADsEnumerateNext(Enum, 1, Element, Count)) AND (Count>0) do begin if (IDispatch(Element).QueryInterface(IID_IADs, IAD)=S_OK) AND (WideLowerCase(IAD.Class_) = 'domain') then showmessage('Domäne: '+IAD.Name); end; //if Enum<>nil then ADsFreeEnumerator(Enum); <- das erzeugt Fehler, wenn mehrmals aufgerufen CoUninitialize; end; Aber kann mir jemand erklären, wieso ich ADsFreeEnumerator nicht aufrufen brauche? Existiert der Namensraum 'WinNT:' immer (zB Benutzerverwaltung in WinNT über LDAP)? Kann man auch über den Namensraum 'LDAP:' die Domains auflisten lassen? Danke für jede Meinung (auch über "Source ist okay" freue ich mich :) )! Bernd |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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 by Thomas Breitkreuz