Sql server - lister les comptes utilisateurs d'un groupe dans active directory

Soyez le premier à donner votre avis sur cette source.

Snippet vu 17 918 fois - Téléchargée 26 fois

Contenu du snippet

Suite à l'article publié :
- http://www.asp-php.net/tutorial/sql-server/linked-server-ad.php

Voila une procédure stockée basée sur une vue, permettant de lister toutes les informations pour les comptes utilisateurs de l'AD appartenant à un groupe donné.

Source / Exemple :


-------------------------------------------------------
-- La vue 
-------------------------------------------------------
CREATE VIEW dbo.ListActiveDirectoryUsers
AS

SELECT
	ADsPath			AS ADsPath,
	title			AS TITRE,
	givenName		AS PRENOM, 
	sn			AS NOM,
	displayName,
	sAMAccountName		AS LOGIN,
	telephoneNumber		AS TELEPHONE,
	facsimileTelephoneNumber	AS FAX,
	mobile			AS MOBILE
	
FROM OpenQuery(MONSERVEURLIEAD, 
	'SELECT ADsPath, title, displayName, sAMAccountName, 
	givenName, telephoneNumber, facsimileTelephoneNumber, sn, mobile
	FROM ''LDAP://DC=ServerControler,DC=Domain,DC=net'' 
	where objectClass = ''User'' AND objectCategory = ''Person''')

GO

-------------------------------------------------------
-- La procédure stockée 
-------------------------------------------------------
CREATE PROCEDURE dbo.ListeUsersInGroup
	@GroupName as VARCHAR(500)
AS

DECLARE @PathAD AS VARCHAR(1000)
DECLARE @SQL 	AS VARCHAR(5000)

SELECT
	@PathAD = REPLACE(ADsPath, 'LDAP://', '')
FROM 
	dbo.ListActiveDirectoryGroups
WHERE
	NomGroup = @GroupName

SET @SQL = 'SELECT USR.* FROM OpenQuery(MONSERVEURLIEAD, '
SET @SQL = @SQL +'''SELECT sAMAccountName, Adspath '
SET @SQL = @SQL +'FROM ''''LDAP://DC=ServerControler,DC=Domain,DC=net'''' '
SET @SQL = @SQL +'where memberOf = '''''+ @PathAD +''''''') AD '
SET @SQL = @SQL +' INNER JOIN dbo.ListActiveDirectoryUsers USR '
SET @SQL = @SQL +' ON AD.Adspath = USR.ADsPath'

EXECUTE (@SQL)

GO

-------------------------------------------------------
-- Utilisation de la procédure :
-------------------------------------------------------
EXEC dbo.ListeUsersInGroup 'GroupeNTAtester'

Conclusion :


Bon coding

Romelard Fabrice

A voir également

Ajouter un commentaire Commentaires
Arcadams Messages postés 3 Date d'inscription jeudi 6 janvier 2005 Statut Membre Dernière intervention 18 novembre 2009
10 nov. 2009 à 17:22
Bonjour,
J'essaie de mettre en place la procédure ci dessus afin de lister les groupes par utilisateur. Par contre la procédure stockée fait référence à une vue inexistante "ListActiveDirectoryGroups" qui n'est pas indiquée.
Cela est il un oubli ou faut-il modifier la vue "ListActiveDirectoryUsers" pour pouvoir s'en servir ? (J'ai bien essayer mais en vain...)

Merci de votre aide.
michel_laure Messages postés 6 Date d'inscription vendredi 12 mars 2004 Statut Membre Dernière intervention 10 août 2006
10 août 2006 à 11:42
bonjour!
je voudrais me connecter à une base sql server 2005 sur delphi7 par ado comment faire?
Merci
cs_Luffy93 Messages postés 1 Date d'inscription mardi 18 juillet 2006 Statut Membre Dernière intervention 18 juillet 2006
18 juil. 2006 à 14:56
Merci pour ce guide au sujet du nombre de retour de l'AD. C'est un problème que je cherche à résoudre depuis très longtemps et j'avais même un peu abandonné. Personnellement je ne sais pas trop pour quoi mais une commande de plus m'a été nécessaire juste après avoir tapé "ntdsutil" : "taper LDAP policies et [Enter]".
cs_fabrice69 Messages postés 1765 Date d'inscription jeudi 12 octobre 2000 Statut Membre Dernière intervention 11 décembre 2013 5
10 juil. 2006 à 16:33
Pour contrer la limitation du nombre de retour de l'AD :
- http://blogs.developpeur.org/fabrice69/archive/2006/07/10/22310.aspx

Romelard Fabrice

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.