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

Logon script probleme

3 réponses
Avatar
Eric
Bonjour,
J'essaie d'écrire un script de logon qui permet en fonction du groupe
d'un utilisateur de monter la bonne imprimante, partage réseaux, ...

j'ai une erreur dans mon code et je ne comprend pas trop comment la réglé.

voici le code:

'constante avec le nom des groupe
Const CSI_GROUP = "cn=gcsi"

'objet imprimante
Set objPrinter = CreateObject("WScript.Network" )

Set ADSysInfo = CreateObject("ADSystemInfo")
'msgbox (ADSysInfo.UserName)
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))
'strGroups = CurrentUser.MemberOf
'msgbox strGroups

'test sur l'appartenance au groupe CSI
If InStr(strGroups, CSI_GROUP) Then
' msgbox ("CSI_GROUP = YES")
objPrinter.AddWindowsPrinterConnection("\\xxx\xxx")
objPrinter.AddWindowsPrinterConnection("\\xxx\xxx-RV")
else
' msgbox ("CSI_GROUP = NON")
End If



Il me fait une erreur sur la ligne :
strGroups = LCase(Join(CurrentUser.MemberOf))
Il dit "join : type incompatible"
j'ai fait un test et strgroups n'est pas vide le msgbox m'affiche bien
quelque chose : CN=GCSI,OU=GROUPS,...


J'ai vu ce code plusieurs fois sur internet, il a l'air de marche
partout sauf chez moi. LOL mais pq?

Merci pour votre aide

3 réponses

Avatar
Gilles LAURENT [MVP]
"Eric" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| J'essaie d'écrire un script de logon qui permet en fonction du groupe
| d'un utilisateur de monter la bonne imprimante, partage réseaux, ...
| Il me fait une erreur sur la ligne :
| strGroups = LCase(Join(CurrentUser.MemberOf))
| Il dit "join : type incompatible"
| j'ai fait un test et strgroups n'est pas vide le msgbox m'affiche bien
| quelque chose : CN=GCSI,OU=GROUPS,...

Cela fonctionne uniquement si l'utilisateur est membre de plus d'un
groupe (sans compter le groupe principal qui est "Utilisa. du domaine"
par défaut). Pour que cela fonctionne dans tous les cas, vous pouvez
utiliser la méthode GetEx qui retournera toujours un tableau de variant
:

If Not IsEmpty (CurrentUser.MemberOf) Then
strGroups = LCase (Join (CurrentUser.GetEx ("MemberOf")))
End If

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Avatar
Eric
Merci beaucoup pour votre aide, cela fonctionne a 98%.

il me reste un cas qui pose problème.
J'ai un groupe A qui est compose de aa, ab, ac, ad,ae, ...

plus tôt que de multiplier les test sur tout les sous groupes j'ai fait
ce même test sur le "group parent" (A)
dans ce cas la la procédure ne fonctionne pas

Eric



"Eric" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| J'essaie d'écrire un script de logon qui permet en fonction du groupe
| d'un utilisateur de monter la bonne imprimante, partage réseaux, ...
| Il me fait une erreur sur la ligne :
| strGroups = LCase(Join(CurrentUser.MemberOf))
| Il dit "join : type incompatible"
| j'ai fait un test et strgroups n'est pas vide le msgbox m'affiche bien
| quelque chose : CN=GCSI,OU=GROUPS,...

Cela fonctionne uniquement si l'utilisateur est membre de plus d'un
groupe (sans compter le groupe principal qui est "Utilisa. du domaine"
par défaut). Pour que cela fonctionne dans tous les cas, vous pouvez
utiliser la méthode GetEx qui retournera toujours un tableau de variant
:

If Not IsEmpty (CurrentUser.MemberOf) Then
strGroups = LCase (Join (CurrentUser.GetEx ("MemberOf")))
End If



Avatar
Gilles LAURENT [MVP]
"Eric" a écrit dans le message de
news:

Bonjour,

| Merci beaucoup pour votre aide, cela fonctionne a 98%.
|
| il me reste un cas qui pose problème.
| J'ai un groupe A qui est compose de aa, ab, ac, ad,ae, ...
|
| plus tôt que de multiplier les test sur tout les sous groupes j'ai
| fait ce même test sur le "group parent" (A)
| dans ce cas la la procédure ne fonctionne pas

L'attribut MemberOf ne gère pas les groupes imbriqués.

Le MVP Richard Mueller a largement traité le sujet. Vous trouverez en
suivant le lien ci-dessous plusieurs fonctions VBScript "IsMember",
chacune possédant ses propres caractéristiques :
http://www.rlmueller.net/freecode1.htm

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr