Page 1 of 1

A-SQL Mitglieder einer AD Gruppe ermitteln

Posted: 28. Aug 2013, 12:31
by bjoern.runge
Hallo zusammen!

Ich würde gerne mit einem A-SQL Statement alle Mitglieder eine bestimmten AD Gruppe ermitteln.

Die AD Gruppe enthält User und Gruppen die wiederrum Gruppen enthalten und ich möchte alle tatsächlichen User ermitteln.

Hat zufällig jemand ein Query zur Hand?

Besten Dank!

Grüße

Björn Runge

Re: A-SQL Mitglieder einer AD Gruppe ermitteln

Posted: 30. Aug 2013, 13:28
by mniemann
Haben Sie Zugriff auf das AD? Dann könnten Sie doch mittels einer LDAP Abfrage die selbe Information erlangen, wenn ich mich nicht irre.
Wenn Sie keinen Zugriff auf das AD haben, bleibt Ihnen natürlich nur der Weg per SQL die Informationen aus dem Service Store zu holen.

Re: A-SQL Mitglieder einer AD Gruppe ermitteln

Posted: 02. Sep 2013, 09:34
by bjoern.runge
Hallo,

ja! Es geht mir an dieser Stelle aber um die Abdeckungsermittlung.

Ich könnte natürlich die Default-Ermittlung bei AD Groups verwenden. Das Problem ist jedoch, dass dann nur die direkten Mitglieder der Gruppe genommen werden. Ich würde aber gerne alle Mitglieder die auch durch Gruppen von Gruppen Mitglied sind inkludieren wollen.

Ich hoffe ich habe mich verständlich ausgedrückt :-)

Beste Grüße!

Re: A-SQL Mitglieder einer AD Gruppe ermitteln

Posted: 03. Sep 2013, 10:09
by FrankPree
Hallo,

etwas ähnliches habei ich in unserem System für unsere Standorte gebaut. Als Grundlage für unser Script diente mir dieses Script zur Rekursion (Das Anlegen des Testtables ist zur Sicherheit auskommentiert):

Code: Select all

--Create Table OrganizationalStructures (
-- BusinessUnitID smallint identity(1,1),
-- BusinessUnit varchar(100) Not Null,
-- ParentUnitID smallint
--)
--insert into OrganizationalStructures values
--('Adventure Works Cycle',NULL),
--('Customer Care',1),
--('Service',1),
--('Channel Sales & Marketing',1),
--('Customer Support',2),
--('OEM Support',2),
--('Central Region',3),
--('Eastern Region',3),
--('Western Region',3),
--('OEM',4),
--('Channel Marketing',4),
--('National Accounts',4),
--('Channel Field Sales',4),
--('National Channel Marketing',11),
--('Retail Channel Marketing',11),
--('Central Region',13),
--('Eastern Region',13),
--('Western Region',13),
--('Bicycles',15),
--('Bicycle Parts',15)

WITH Recursive_CTE AS (
 SELECT
  child.BusinessUnitID,
  CAST(child.BusinessUnit as varchar(100)) BusinessUnit,
  CAST(child.ParentUnitID as SmallInt) ParentUnitID,
  CAST(NULL as varchar(100)) ParentUnit,
  CAST('>> ' as varchar(100)) LVL,
  CAST(child.BusinessUnitID as varchar(100)) Hierarchy,
  1 AS RecursionLevel
 FROM OrganizationalStructures child
 WHERE BusinessUnitID = 1

 UNION ALL

 SELECT
  child.BusinessUnitID,
  CAST(LVL + child.BusinessUnit as varchar(100)) AS BusinessUnit,
  child.ParentUnitID,
  parent.BusinessUnit ParentUnit,
  CAST('>> ' + LVL as varchar(100)) AS LVL,
  CAST(Hierarchy + ':' + CAST(child.BusinessUnitID as varchar(100)) as varchar(100)) Hierarchy,
  RecursionLevel + 1 AS RecursionLevel
 FROM Recursive_CTE parent
 INNER JOIN OrganizationalStructures child ON child.ParentUnitID = parent.BusinessUnitID
)
SELECT * FROM Recursive_CTE ORDER BY Hierarchy 
Vielleicht hilft das bei der Grundüberlegung.

Grüße
Frank

Quelle: http://www.kodyaz.com/t-sql/sql-server- ... e-cte.aspx

Re: A-SQL Mitglieder einer AD Gruppe ermitteln

Posted: 06. Sep 2013, 18:41
by bjoern.runge
Hmm...aus meiner Sicht ist das Script nicht wirklich für die "Abdeckungsermittlung" zu gebrauchen oder? Also müsste ich ggf. mit einer Hilfstabelle arbeiten.

Vielleicht hilft eine andere Herangehensweise?! Alle Personen mit einer E-Mail Adresse sollen einen Service "Mail-Service" übergeholfen bekommen. Vielleicht wäre es einfacher einfach zu schauen welche Personen eine E-Mail Adresse und eine Kostenstelle haben. Diese Information wird ja vom AD Konnektor übertragen und wäre auswertbar....oder? :-)