AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Active Directory GruppenID

Ein Thema von cst_07 · begonnen am 4. Dez 2007 · letzter Beitrag vom 5. Dez 2007
Antwort Antwort
Seite 2 von 2     12   
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#11

Re: Active Directory GruppenID

  Alt 4. Dez 2007, 19:27
ADsPath ist eindeutig, aber variabel - da hast du Recht. Momentan gehe ich nach dem Studium der verfügbaren Dokumentation zu IADs immer noch davon aus, dass die property GUID deine Anforderungen erfüllen sollte.

Wie sieht dein Code aus, der stets die GUID des Interface liefert?
Hast du das Beispiel aus Beitrag #6 mal adaptiert?
Um an die GUID zu gelangen kannst du auch das Basis-Interface IADs verwenden.

Um selbst einen Test zu machen benötige ich etwas Zeit (VPN-Tunnel einrichten, Credentials besorgen, ...), aber vielleicht kriegen wir das Problem ja durch Sichtung deines Codes hin.
  Mit Zitat antworten Zitat
cst_07

Registriert seit: 29. Nov 2007
34 Beiträge
 
#12

Re: Active Directory GruppenID

  Alt 5. Dez 2007, 08:58
Das Beispiel aus #6 hatte ich probiert, hat aber nicht so richtig hingenauen.

Nun der Code zum Auslesen der Gruppeninformationen:

Delphi-Quellcode:
procedure TfrmInfo.ShowGroupInfo;
var
  grp : IAdsGroup;
begin
  if UseOpenObject then
    ADsOpenObject('WinNT://' + Domain + '/' + tvAD.Selected.Text, UserName, Password, 1, IADsGroup, grp)
  else
    ADsGetObject('WinNT://' + Domain + '/' + tvAD.Selected.Text, IADsGroup, grp);
  Assert(grp <> nil);
  edtGroupname.Text := grp.Name; // Gruppen Name
  edtDescription.Text := grp.Description; // Gruppen Beschreibung

  grp.GUID; // GUID des Interface (immer gleich)
             // GUID immer {27636B00-410F-11CF-B1FF-02608C9E7553}
end;

Die dazugehörige Typlibaryinfo (vielleicht hilft das ja):
Delphi-Quellcode:
// *********************************************************************//
// Interface: IADsGroup
// Flags: (4416) Dual OleAutomation Dispatchable
// GUID: {27636B00-410F-11CF-B1FF-02608C9E7553}
// *********************************************************************//
  IADsGroup = interface(IADs)
    ['{27636B00-410F-11CF-B1FF-02608C9E7553}']
    function Get_Description: WideString; safecall;
    procedure Set_Description(const retval: WideString); safecall;
    function Members: IADsMembers; safecall;
    function IsMember(const bstrMember: WideString): WordBool; safecall;
    procedure Add(const bstrNewItem: WideString); safecall;
    procedure Remove(const bstrItemToBeRemoved: WideString); safecall;
    property Description: WideString read Get_Description write Set_Description;
  end;
  Mit Zitat antworten Zitat
cst_07

Registriert seit: 29. Nov 2007
34 Beiträge
 
#13

Re: Active Directory GruppenID

  Alt 5. Dez 2007, 15:27
Habe mich mal auf den MSDN Seiten genauer umgeschaut und bin auf folgende Info gestoßen.
Die GruppenID lässt sich bei "Globalen Gruppen" (Netapi32.dll) problemlos auslesen, aber bei "Lokalen Gruppen" nicht.

GROUP_INFO_2 Structure
The GROUP_INFO_2 structure contains information about a global group, including name, identifier, and resource attributes.
Delphi-Quellcode:
typedef struct _GROUP_INFO_2
  LPWSTR grpi2_name; 
  LPWSTR grpi2_comment; 
  DWORD grpi2_group_id; 
  DWORD grpi2_attributes;
}
 GROUP_INFO_2, *PGROUP_INFO_2;
LOCALGROUP_INFO_1 Structure
The LOCALGROUP_INFO_1 structure contains a local group name and a comment describing the local group.
Delphi-Quellcode:
typedef struct _LOCALGROUP_INFO_1
  LPWSTR lgrpi1_name; 
  LPWSTR lgrpi1_comment;
}
 LOCALGROUP_INFO_1,
  *PLOCALGROUP_INFO_1,
  *LPLOCALGROUP_INFO_1;
Was haben sich die MS-Entwickler bei der localgrup-definition gedacht?
Kaum zu glauben, wieso es hier keine ID gibt

Gibt es noch eine andere Möglichkeit??
  Mit Zitat antworten Zitat
Alter Mann

Registriert seit: 15. Nov 2003
Ort: Berlin
947 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

Re: Active Directory GruppenID

  Alt 5. Dez 2007, 20:28
Hallo,

ActiveDirectoryServices oder lokale Gruppen?

Folgende Aussagen beziehen sich auf LDAP://.

Da ich nicht weiß welche Möglichkeiten du hast: Du musst nach den Eigenschaften(Properties) des ADsObjects
schauen, sehr hilfreich (aber auch gefährlich) ADSIEdit.

Die in diesem Fall wichtigen Eigenschaften sind objectGIUD und primaryGroupToken bzw.
auf Mitgliedsseite primaryGroupID. (siehe Anhang)

Der Zugriff erfolgt je nach Vorgehensweise entweder über IADs direkt oder aber
über IADs->(IADS.get_schema)->IDAsClass.OptionalProperties und/oder über
IID_IDirectoryObject.GetObjectAttributes.

Welches der richtige Weg ist, weiß ich auch nicht genau, aber zum Ziel führen sie alle.

Gruß
Miniaturansicht angehängter Grafiken
prop_653.jpg  
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz