Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Interrogation d'une base AD à l'aide de SQL

4 réponses
Avatar
Loïc
Bonjour à tous,

J'ai une petite question à vous soumettre, comme elle est en relation avec
Sql je me permets de la poster sur cette newsletter.

J'aimerais pouvoir interroger (directement ou indirectement) la base
d'Active Directory et ce afin de récupérer les logins, machines etc. Je
pense qu'en utilisant des requêtes SQL on doit pouvoir lancer ce genre
d'interrogation mais je ne sais pas du tout si une table SQL Server système
peut déjà regrouper ce genre d'objet ou bien si je suis complétement à côté
de la plaque.

Meilleures salutations
Loïc

4 réponses

Avatar
bruno reiter [MVP]
essaies avec ça comme base :


sp_addlinkedserver 'ADSI', 'Active Directory Services 2.5',
'ADSDSOObject','adsdatasource'
go


SELECT * FROM OpenQuery(
ADSI,'<LDAP://DC=generale-optique,DC=com>;(&(objectCategory=Person)(objectCl
ass=user));name, adspath;subtree')
--ADSI,'<LDAP://DC=generale-optique,DC=com>;(&(objectCategory=Person)(object
Class=user));name, adspath;subtree, SID;SID')

SELECT * FROM OpenQuery( ADSI, 'SELECT securityIdentifier, adsPath FROM
''LDAP://DC=generale-optique,DC=com'' WHERE objectCategory = ''Person'' AND
objectClass= ''user''')

select * from
(
SELECT * FROM OpenQuery( ADSI, 'SELECT o, name, objectsid, objectguid,
adsPath FROM
''LDAP://DC=generale-optique,DC=com'' WHERE objectCategory = ''Person'' AND
objectClass= ''user''')
)as a
where a.objectsid = (select suser_sid())







br

"Loïc" wrote in message
news:
Bonjour à tous,

J'ai une petite question à vous soumettre, comme elle est en relation avec
Sql je me permets de la poster sur cette newsletter.

J'aimerais pouvoir interroger (directement ou indirectement) la base
d'Active Directory et ce afin de récupérer les logins, machines etc. Je
pense qu'en utilisant des requêtes SQL on doit pouvoir lancer ce genre
d'interrogation mais je ne sais pas du tout si une table SQL Server


système
peut déjà regrouper ce genre d'objet ou bien si je suis complétement à


côté
de la plaque.

Meilleures salutations
Loïc




Avatar
Vuillermet Jacques
Pour créer un serveur lié vers l'AD :
EXEC sp_addlinkedserver 'ADSI_LNK', 'Active Directory Services 2.5',
'ADSDSOObject', 'adsdatasource'
EXEC sp_addlinkedsrvlogin 'ADSI_LNK', 'false', NULL, NULL, NULL

Pour l'interroger :

SELECT mailnickname as LoginNT, displayname as NomComplet,
CASE
WHEN title is null THEN ''
ELSE title
END as Fonction, adspath,
REPLACE (
REPLACE(
REPLACE (adspath,',OU=','/'),
'/MonDomaine,DC=MonDomaine,DC=fr','')
, 'LDAP://CN=', '') as Service
FROM OPENQUERY(ADSI_LNK, 'SELECT mailnickname, displayname, title, adspath
FROM ''LDAP://OU=MonDomaine, DC=MonDomaine, DC=fr'' WHERE
ObjectClass=''User'' AND mailnickname =''jmartin'' ')

A adapter bien sûr.

Jacques.

"Loïc" a écrit dans le message de news:

Bonjour à tous,

J'ai une petite question à vous soumettre, comme elle est en relation avec
Sql je me permets de la poster sur cette newsletter.

J'aimerais pouvoir interroger (directement ou indirectement) la base
d'Active Directory et ce afin de récupérer les logins, machines etc. Je
pense qu'en utilisant des requêtes SQL on doit pouvoir lancer ce genre
d'interrogation mais je ne sais pas du tout si une table SQL Server


système
peut déjà regrouper ce genre d'objet ou bien si je suis complétement à


côté
de la plaque.

Meilleures salutations
Loïc




Avatar
Loïc
Salut merci pour ta réponse, malheureusement j'ai encore un petit blème j'ai
bien sûr adapté la requête ci-dessous afin de lister les users dans l'ad.
Malheureusement, le message d'erreur apparait :
"Erreur lors de la préparation de la requête à exécuter sur le fournissseur
OLE DB 'ADSDSOObject' IcommandPrepare :: Prepare returned 0x80040e14"

Est ce que cela te dis quelque chose ?
Salutations
Loïc

"Vuillermet Jacques" a écrit dans le message de
news:
Pour créer un serveur lié vers l'AD :
EXEC sp_addlinkedserver 'ADSI_LNK', 'Active Directory Services 2.5',
'ADSDSOObject', 'adsdatasource'
EXEC sp_addlinkedsrvlogin 'ADSI_LNK', 'false', NULL, NULL, NULL

Pour l'interroger :

SELECT mailnickname as LoginNT, displayname as NomComplet,
CASE
WHEN title is null THEN ''
ELSE title
END as Fonction, adspath,
REPLACE (
REPLACE(
REPLACE (adspath,',OU=','/'),
'/MonDomaine,DC=MonDomaine,DC=fr','')
, 'LDAP://CN=', '') as Service
FROM OPENQUERY(ADSI_LNK, 'SELECT mailnickname, displayname, title, adspath
FROM ''LDAP://OU=MonDomaine, DC=MonDomaine, DC=fr'' WHERE
ObjectClass=''User'' AND mailnickname =''jmartin'' ')

A adapter bien sûr.

Jacques.

"Loïc" a écrit dans le message de news:

> Bonjour à tous,
>
> J'ai une petite question à vous soumettre, comme elle est en relation


avec
> Sql je me permets de la poster sur cette newsletter.
>
> J'aimerais pouvoir interroger (directement ou indirectement) la base
> d'Active Directory et ce afin de récupérer les logins, machines etc. Je
> pense qu'en utilisant des requêtes SQL on doit pouvoir lancer ce genre
> d'interrogation mais je ne sais pas du tout si une table SQL Server
système
> peut déjà regrouper ce genre d'objet ou bien si je suis complétement à
côté
> de la plaque.
>
> Meilleures salutations
> Loïc
>
>




Avatar
Vuillermet Jacques
Hélas non !

"Loïc" a écrit dans le message de news:
#
Salut merci pour ta réponse, malheureusement j'ai encore un petit blème


j'ai
bien sûr adapté la requête ci-dessous afin de lister les users dans l'ad.
Malheureusement, le message d'erreur apparait :
"Erreur lors de la préparation de la requête à exécuter sur le


fournissseur
OLE DB 'ADSDSOObject' IcommandPrepare :: Prepare returned 0x80040e14"

Est ce que cela te dis quelque chose ?
Salutations
Loïc

"Vuillermet Jacques" a écrit dans le message de
news:
> Pour créer un serveur lié vers l'AD :
> EXEC sp_addlinkedserver 'ADSI_LNK', 'Active Directory Services 2.5',
> 'ADSDSOObject', 'adsdatasource'
> EXEC sp_addlinkedsrvlogin 'ADSI_LNK', 'false', NULL, NULL, NULL
>
> Pour l'interroger :
>
> SELECT mailnickname as LoginNT, displayname as NomComplet,
> CASE
> WHEN title is null THEN ''
> ELSE title
> END as Fonction, adspath,
> REPLACE (
> REPLACE(
> REPLACE (adspath,',OU=','/'),
> '/MonDomaine,DC=MonDomaine,DC=fr','')
> , 'LDAP://CN=', '') as Service
> FROM OPENQUERY(ADSI_LNK, 'SELECT mailnickname, displayname, title,


adspath
> FROM ''LDAP://OU=MonDomaine, DC=MonDomaine, DC=fr'' WHERE
> ObjectClass=''User'' AND mailnickname =''jmartin'' ')
>
> A adapter bien sûr.
>
> Jacques.
>
> "Loïc" a écrit dans le message de news:
>
> > Bonjour à tous,
> >
> > J'ai une petite question à vous soumettre, comme elle est en relation
avec
> > Sql je me permets de la poster sur cette newsletter.
> >
> > J'aimerais pouvoir interroger (directement ou indirectement) la base
> > d'Active Directory et ce afin de récupérer les logins, machines etc.


Je
> > pense qu'en utilisant des requêtes SQL on doit pouvoir lancer ce genre
> > d'interrogation mais je ne sais pas du tout si une table SQL Server
> système
> > peut déjà regrouper ce genre d'objet ou bien si je suis complétement à
> côté
> > de la plaque.
> >
> > Meilleures salutations
> > Loïc
> >
> >
>
>