OVH Cloud OVH Cloud

Compte machine sur une domaine NT

3 réponses
Avatar
ctrlaltdel
Bonjours,

Comment connaitre le SID d'un compte machine sur une domaine NT ?

Merci pour vos reponses...

3 réponses

Avatar
Jean-Claude BELLAMY
Dans le message news:cctv6a$s9t$ ,
ctrlaltdel s'est ainsi exprimé:

Bonjours,

Comment connaitre le SID d'un compte machine sur une domaine NT ?



J'ai cherché moi aussi (et je continue à phosphorer!)

En ce qui concerne un compte utilisateur, pas de problème, je fais çà p.ex.
en VBS à l'aide de WMI et la classe "Win32_AccountSID"
cf. mon script name2sid.wsf
http://www.bellamyjc.org/fr/vbsdownload.html#name2sid

Dans mes programmes (SuperExec p.ex., écrit en Delphi), j'utilise la
fonction "LookupAccountName" suivie de "ConvertSidToStringSid" (toutes deux
dans advapi32.dll)


En ce qui concerne un compte machine, je ne sais pas encore comment faire
(mais j'ai mon idée-voir plus bas) , par contre j'ai trouvé "ADfind", un
excellent freeware (dont j'aimerais bien connaitre la source !!) conçu par
Joe Richards (MVP Windows Server Directory Services) qui donne plein d'infos
sur n'importe quel objet d'un Active Directory, dont p.ex. le SID d'une
machine :
http://www.joeware.net/win32/zips/Adfind.zip

Exemple :
adfind -b dc=jcb,dc=org -f "objectcategory=computer"
dn:CN=SEATTLE,OU=Domain Controllers,DC=jcb,DC=org
...
primaryGroupID: 516
objectSid: S-1-5-21-403699039-2849373077-516509555-1009


...
dn:CN¾LLEVUE,OU=Stations,DC=jcb,DC=org
...
primaryGroupID: 515
objectSid: S-1-5-21-403699039-2849373077-516509555-1117


...
dn:CN=BINGERVILLE,CN=Computers,DC=jcb,DC=org
primaryGroupID: 515
objectSid: S-1-5-21-403699039-2849373077-516509555-1122


...

Je retrouve bien les SID des groupes avec mon script "name2sid"
...
Name : Contrôleurs de domaine
SID : S-1-5-21-403699039-2849373077-516509555-516
Name : Ordinateurs du domaine
SID : S-1-5-21-403699039-2849373077-516509555-515


Mais j'ai vu que ADfind faisait appel à la dll WLDAP32.DLL, ce qui semble
assez logique.
C'est l'API qui permet d'interroger l'Active Directory, dans lequel se
trouvent en particulier les SID des comptes ordinateurs.
(fonctions ldap_init, ldap_search, ldap_first, ...)
Il faut donc "creuser" dans cette voie...


--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
http://www.bellamyjc.org *

Avatar
ctrlaltdel
Salut,

Ben je vois que je ne suis pas le seul à me poser cette question
transcendantale (Quoique pas autant que ça ) :

J'ai découvert qu'en faite le SID d'un compte n'a aucune importance dans
la phase de reconnaissance d'une station de travail Windows par un
contrôleur de domaine. Mais que il y a un échange de clé cryptée
(générée avec le Nom netbios de la machine) au moment ou la station
s'authentifie sur le contrôleur de domaine. Puis après c'est cette clé
qui est échangée entre la station et le contrôleur de domaine.
Avatar
Pha
Bonjour,

On peut aussi récupérer l'attribut AD "objectSID" d'un ordinateur
("CN=STATION1,CN=Computers,DC=masociete,DC=com" par exemple), puis
ensuite utiliser la fonction "ConvertSidToStringSid" pour le convertir en
string. "ObjectSID" peut être utilisé sur tous les objets AD :
ordinateurs, groupes, utilisateurs, OU, ... Ceci pour Windows 2000/2003.
Pour Windows NT, il suffit de récupérer l'ID du compte ordinateur :
NOM_ORDI$ (nom du compte ordinateur suivi de '$'), puis de concaténer
avec le ID du PDC. Pour récupérer l ID du PDC, on peut utiliser par
exemple la fonction "NetUserModalsGet" (umi2->usrmod2_domain_id).
Fonctions en c++. Cordialement.



"Jean-Claude BELLAMY" wrote in
news:ccudrj$3gq$:

Dans le message news:cctv6a$s9t$ ,
ctrlaltdel s'est ainsi exprimé:

Bonjours,

Comment connaitre le SID d'un compte machine sur une domaine NT ?



J'ai cherché moi aussi (et je continue à phosphorer!)

En ce qui concerne un compte utilisateur, pas de problème, je fais çà
p.ex. en VBS à l'aide de WMI et la classe "Win32_AccountSID"
cf. mon script name2sid.wsf
http://www.bellamyjc.org/fr/vbsdownload.html#name2sid

Dans mes programmes (SuperExec p.ex., écrit en Delphi), j'utilise la
fonction "LookupAccountName" suivie de "ConvertSidToStringSid" (toutes
deux dans advapi32.dll)


En ce qui concerne un compte machine, je ne sais pas encore comment
faire (mais j'ai mon idée-voir plus bas) , par contre j'ai trouvé
"ADfind", un excellent freeware (dont j'aimerais bien connaitre la
source !!) conçu par Joe Richards (MVP Windows Server Directory
Services) qui donne plein d'infos sur n'importe quel objet d'un Active
Directory, dont p.ex. le SID d'une machine :
http://www.joeware.net/win32/zips/Adfind.zip

Exemple :
adfind -b dc=jcb,dc=org -f "objectcategory=computer"
dn:CN=SEATTLE,OU=Domain Controllers,DC=jcb,DC=org
...
primaryGroupID: 516
objectSid: S-1-5-21-403699039-2849373077-516509555-1009


...
dn:CN¾LLEVUE,OU=Stations,DC=jcb,DC=org
...
primaryGroupID: 515
objectSid: S-1-5-21-403699039-2849373077-516509555-1117


...
dn:CN=BINGERVILLE,CN=Computers,DC=jcb,DC=org
primaryGroupID: 515
objectSid: S-1-5-21-403699039-2849373077-516509555-1122


...

Je retrouve bien les SID des groupes avec mon script "name2sid"
...
Name : Contrôleurs de domaine
SID : S-1-5-21-403699039-2849373077-516509555-516
Name : Ordinateurs du domaine
SID : S-1-5-21-403699039-2849373077-516509555-515


Mais j'ai vu que ADfind faisait appel à la dll WLDAP32.DLL, ce qui
semble assez logique.
C'est l'API qui permet d'interroger l'Active Directory, dans lequel se
trouvent en particulier les SID des comptes ordinateurs.
(fonctions ldap_init, ldap_search, ldap_first, ...)
Il faut donc "creuser" dans cette voie...