Appartenance à un groupe AD vbs - VB/VBA/VBS - Programmation
Marsh Posté le 18-07-2006 à 14:44:29
ReplyMarsh Posté le 24-07-2006 à 14:25:49
J'arrive pas vraiment a m'en sortir.
J'ai bien trouvé des scripts permettant de lister tous les groupes mais il faut utiliser la syntaxe LDAP:// plutot que WinNT:// donc moins intéressant
Quelqu'un aurait-il une piste?
Marsh Posté le 24-07-2006 à 17:45:38
Ah non c'est plus interessant justement, tiens voila ce que j'ai:
Tu rentres ton nom d'utilisateur que tu cherches ainsi que le chemin LDAP de ton domaine (L'OU par défaut est déjà indiquée)
Voila amuse toi bien
|
Marsh Posté le 24-07-2006 à 17:55:21
Y en a qui s'emm... vraiment pendant les vacances !
pardon... qui s'amusent comme des p'tits fous !
Marsh Posté le 25-07-2006 à 08:49:31
sennastien a écrit : Ah non c'est plus interessant justement, tiens voila ce que j'ai:
|
Le truc c'est que tous mes utilisateurs ne sont pas dans le conteneur "Builtin Users" et que le chemin LDAP n'est donc jamais le même.
L'idée c'est d'avoir un mappage des ressources en fonction du groupe d'appartenance et ce pour chaque utilisateur au login...
C'est pour cela que j'arrive pas a m'en sortir avec la syntaxe LDAP://, et aussi, et même surout parceque je suis un novice en wsh...
Marsh Posté le 25-07-2006 à 10:21:20
A ce moment là fait d'abord une recherche de ton chemin LDAP sur ta liste de user puis pour chaque chemin trouvé, tu inseres directement le chemin LDAP dans ta requête des membres de groupe.
De toutes façons tu ne dois pas avoir 200 chemins différents, tes Users sont contenus majoritairement dans une OU nan?
Marsh Posté le 25-07-2006 à 18:28:28
sennastien a écrit : A ce moment là fait d'abord une recherche de ton chemin LDAP sur ta liste de user puis pour chaque chemin trouvé, tu inseres directement le chemin LDAP dans ta requête des membres de groupe. |
Tu veux dire qu'on peux obtenir le chemin LDAP de l'utilisateur connécté?
A quoi ressemblerai ce bout de script?
sennastien a écrit : De toutes façons tu ne dois pas avoir 200 chemins différents, tes Users sont contenus majoritairement dans une OU nan? |
Non, c'est clair. Je dois avoir 7 ou 8 OU "Users"
Merci pour tes réponses en tout cas...on vas y arriver
Marsh Posté le 26-07-2006 à 10:54:28
JUJU a écrit : Tu veux dire qu'on peux obtenir le chemin LDAP de l'utilisateur connécté? Non, c'est clair. Je dois avoir 7 ou 8 OU "Users" Merci pour tes réponses en tout cas...on vas y arriver |
Of course
http://www.microsoft.com/france/te [...] y1021.mspx
et pour répondre plus directemetn à ta question, voila le code:
On Error Resume Next
Const ADS_SCOPE_SUBTREE = 2
Set objConnection = CreateObject("ADODB.Connection" )
Set objCommand = CreateObject("ADODB.Command" )
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size" ) = 1000
objCommand.Properties("Searchscope" ) = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT distinguishedName FROM 'LDAP://dc=TOTO,dc=fr' WHERE objectCategory='user' "
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst
Do Until objRecordSet.EOF
Wscript.Echo objRecordSet.Fields("distinguishedName" ).Value
objRecordSet.MoveNext
Loop
Et voila
Marsh Posté le 27-07-2006 à 08:41:04
sennastien a écrit : Of course |
Ca c'est de la réactivité.
Le lien vers le site MS peut m'être également fort utile.
Je vais regarder comment utiliser tout ca dans mon script existant mais je dois dire que je commence à y voir un peu plus clair.
Je te tiens au courant.
Merci encore
Marsh Posté le 28-06-2007 à 08:52:44
Bonjour,
Finalement as-tu trouvé le code pour pouvoir lister tous les utilisateurs contenu dans un groupe et sous groupe ?
Je suis à la recherche active de ce type de code mais pour l'instant, comme bon nombre, je n'arrive à ressortir que les users contenu dans le groupe.
Je ne suis pas vraiment un spécialiste de VBS...
Merci
Teddy
Marsh Posté le 10-07-2006 à 17:22:34
Hello,
J'utilise actuellement le script vbs suivant pour tester l'appartenance aux groupes AD.
La limite de ce script est de ne sortir que le premier niveau d'appartenance.
J'aimerai aller juste un niveau au dessus.
Ainsi pour un utilisateur donné s'il appartient au groupe A lui même memebre du groupe B, j'aimerai que le script me renvoi ces 2 groupes...
Avez-vous une idée?
-------------------------------------------------------------
On error resume next
Set WshNetwork = WScript.CreateObject("WScript.Network" )
Set ObjNetwork = WScript.CreateObject("WScript.Network" )
set WshShell = CreateObject("WScript.Shell" )
DomainName=WshShell.ExpandEnvironmentStrings("%USERDOMAIN%" )
Set UserObj = GetObject("WinNT://" & DomainName & "/" & WshNetwork.username)
'Init Groups
Dim UserGroups
Dim GroupObj
UserGroups=""
For Each GroupObj In UserObj.Groups
UserGroups=UserGroups & "[" & GroupObj.Name & "]"
Next
'wscript.echo "Membre de "&UserGroups
'
Function InGroup(strGroup)
InGroup=False
If InStr(UserGroups,"[" & strGroup & "]" ) Then
InGroup=True
End If
End Function
-------------------------------------------------------------
Merci d'avance