Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Distributed File System (DFS) erkennen / finden (https://www.delphipraxis.net/86042-distributed-file-system-dfs-erkennen-finden.html)

Alter Mann 8. Feb 2007 06:55


Distributed File System (DFS) erkennen / finden
 
Hallo,

weis jemand wie ich unter Windows Server 2003, ein DFS-Stamm suchen/finden/erkennen kann?
Bisher behelfe ich mich damit, das der User dies Angeben muss. Allerdings sollte es
möglich sein dies selbst zu ermitteln und den User eine Auswahl innerhable einer ComboBox
zu ermöglichen.

Danke

marabu 8. Feb 2007 07:57

Re: Distributed File System (DFS) erkennen / finden
 
Guten Morgen,

du könntest dir mit NetShareEnum() eine Liste der Shares auf dem Server besorgen und dann für jedes Share mit NetShareGetInfo() prüfen, ob es sich um ein DFS-Share handelt.

Grüße vom marabu

Alter Mann 10. Feb 2007 09:39

Re: Distributed File System (DFS) erkennen / finden
 
Hallo,

eine mögliche Lösung sieht so aus:

Delphi-Quellcode:
function GetDFSList(DomainName : String; DFs : TStrings) : Boolean;
var
  rN           : String;
  NSContainer  : IADsContainer;
  Enum         : IEnumVariant;
  hr           : integer;
  varArr       : OleVariant;
  lNumElements : ULONG;
  item         : IADs;
begin
  rN := 'LDAP://CN=Dfs-Configuration,CN=System,';
  rN := rN + Copy(DomainName, POS('DC=', DomainName), Length(DomainName));

  NSContainer := nil;
  ADsGetObject(rN, IADsContainer, NSContainer);
  Enum       := nil;
  hr := ADsBuildEnumerator(NSContainer, Enum);
  while SUCCEEDED(hr) do
  begin
    hr := ADsEnumerateNext(Enum, 1, varArr, lNumElements);
    if (lNumElements<=0) then Break;
    IDispatch(varArr).QueryInterface(IADs, item);
    DFs.Add(Copy(item.Name, 4, Length(item.Name)));
  end;
  Result := DFs.Count -1 > -1;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:33 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