Bonjour, tout d'abord je tiens à vous dire qu'il s'agit de mon premier post. J'espère que je vais être assez clair et pas à coté de la plaque .

J'ai cherché le moyen sur du SQL de faire une vue sur les utilisateurs d'un groupe AD.

J'ai trouvé en cherchant le code ci-dessous qui fonctionne, mais je n'arrive pas à le transformer afin de pouvoir créer une vue.

C'est peut-être très simple pour vous mais moi je débute en SQL et je pense y avoir passé déjà beaucoup de temps.

J'espère que vous pourrez m'aider.

Merci d'avance.

Voici le code

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
DECLARE @group NVARCHAR(128) = 'MonGroupe'
DECLARE @DC1 NVARCHAR(128) = 'MonDomaine'
DECLARE @DC2 NVARCHAR(128) = 'local'
 
DECLARE @SQL NVARCHAR(MAX)
DECLARE @group_dn NVARCHAR(512)
DECLARE @result TABLE(name NVARCHAR(512))
 
SET @SQL = 
'SELECT distinguishedName
FROM OPENQUERY
(ADSI,''SELECT cn, distinguishedName, dc
FROM ''''LDAP://DC=' + @DC1 + ',DC=' + @DC2 + '''''
WHERE objectCategory = ''''group'''' AND cn = ''''' + @group + ''''''')'
 
--PRINT @SQL
INSERT @result(name)
EXEC sp_executesql @SQL
SELECT @group_dn = name FROM @result
 
SET @SQL =
'SELECT *
FROM OPENQUERY (ADSI, ''<LDAP://' + @DC1 + '.' + @DC2 + '>;
(&(objectCategory=person)(memberOf:1.2.840.113556.1.4.1941:=' + @group_dn + '));
cn, sAMAccountName, mail,adspath, distinguishedName;subtree'')
ORDER BY cn;'
 
--PRINT @SQL
EXEC sp_executesql @SQL