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
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.