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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 15 552 fois - Téléchargée 24 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

cs_fabrice69
Messages postés
1766
Date d'inscription
jeudi 12 octobre 2000
Statut
Modérateur
Dernière intervention
11 décembre 2013
4 -
Pour contrer la limitation du nombre de retour de l'AD :
- http://blogs.developpeur.org/fabrice69/archive/2006/07/10/22310.aspx

Romelard Fabrice
cs_Luffy93
Messages postés
1
Date d'inscription
mardi 18 juillet 2006
Statut
Membre
Dernière intervention
18 juillet 2006
-
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]".
michel_laure
Messages postés
6
Date d'inscription
vendredi 12 mars 2004
Statut
Membre
Dernière intervention
10 août 2006
-
bonjour!
je voudrais me connecter à une base sql server 2005 sur delphi7 par ado comment faire?
Merci
Arcadams
Messages postés
3
Date d'inscription
jeudi 6 janvier 2005
Statut
Membre
Dernière intervention
18 novembre 2009
-
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.

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.