problele script VBS logon
Le
Aurelien
Bonjour,
J'utilise un script présent sur le site de Windows 2003 pour mapper
automatiquement les imprimantes et les lecteurs réseau des utilisateurs en
fonction de leur appartenance à leur groupe.
Lors de l'execution du script au lancement de la machine, j'ai l'erreur
suivante :
Srcript : \\mondomaine.fr\sysvol\mondomaine.fr\scripts\logon_script.vbs
Ligne : 10
Caract. : 1
Erreur : Type incompatible : 'Join'
Code : 800A000D
Source : Erreur de l'execution Microsoft VBScript
J'ai rattaché se script à une OU au niveau du logon script de l'user.
Environnment : 2003 serveur + postes XP. domaine mixte. Pas de connexion
anonymes à l'AD persmises.
Cela marche mais sur les nouveaux utilisateurs cela ne marche pas. Ce qui
est bizarre c'est que cela ne marchait pas chez un user puis le lendemain ca
c'est mit a fonctionner tout seul !
Voici le script complet original :
Const ENGINEERING_GROUP = "cn=engineering"
Const FINANCE_GROUP = "cn=finance"
Const HUMAN_RESOURCES_GROUP = "cn=human resources"
Set wshNetwork = CreateObject("WScript.Network")
wshNetwork.MapNetworkDrive "h:", "\\FileServer\Users\" & wshNetwork.UserName
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))
If InStr(strGroups, ENGINEERING_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\\FileServer\Engineering\"
wshNetwork.AddWindowsPrinterConnection "\\PrintServer\EngLaser"
wshNetwork.AddWindowsPrinterConnection "\\PrintServer\Plotter"
wshNetWork.SetDefaultPrinter "\\PrintServer\EngLaser"
ElseIf InStr(strGroups, FINANCE_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\\FileServer\Finance\"
wshNetwork.AddWindowsPrinterConnection "\\PrintServer\FinLaser"
wshNetWork.SetDefaultPrinter "\\PrintServer\FinLaser"
ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\\FileServer\Human Resources\"
wshNetwork.AddWindowsPrinterConnection "\\PrintServer\HrLaser"
wshNetWork.SetDefaultPrinter "\\PrintServer\HrLaser"
End If
Qu'en pensez vous ?
Cela peut être un probleme de droit ? de syntaxe ??
le site d'origine du script :
http://www.microsoft.com/resources/...sks004.asp
Merci Beaucoup !!
Aurélien
J'utilise un script présent sur le site de Windows 2003 pour mapper
automatiquement les imprimantes et les lecteurs réseau des utilisateurs en
fonction de leur appartenance à leur groupe.
Lors de l'execution du script au lancement de la machine, j'ai l'erreur
suivante :
Srcript : \\mondomaine.fr\sysvol\mondomaine.fr\scripts\logon_script.vbs
Ligne : 10
Caract. : 1
Erreur : Type incompatible : 'Join'
Code : 800A000D
Source : Erreur de l'execution Microsoft VBScript
J'ai rattaché se script à une OU au niveau du logon script de l'user.
Environnment : 2003 serveur + postes XP. domaine mixte. Pas de connexion
anonymes à l'AD persmises.
Cela marche mais sur les nouveaux utilisateurs cela ne marche pas. Ce qui
est bizarre c'est que cela ne marchait pas chez un user puis le lendemain ca
c'est mit a fonctionner tout seul !
Voici le script complet original :
Const ENGINEERING_GROUP = "cn=engineering"
Const FINANCE_GROUP = "cn=finance"
Const HUMAN_RESOURCES_GROUP = "cn=human resources"
Set wshNetwork = CreateObject("WScript.Network")
wshNetwork.MapNetworkDrive "h:", "\\FileServer\Users\" & wshNetwork.UserName
Set ADSysInfo = CreateObject("ADSystemInfo")
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroups = LCase(Join(CurrentUser.MemberOf))
If InStr(strGroups, ENGINEERING_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\\FileServer\Engineering\"
wshNetwork.AddWindowsPrinterConnection "\\PrintServer\EngLaser"
wshNetwork.AddWindowsPrinterConnection "\\PrintServer\Plotter"
wshNetWork.SetDefaultPrinter "\\PrintServer\EngLaser"
ElseIf InStr(strGroups, FINANCE_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\\FileServer\Finance\"
wshNetwork.AddWindowsPrinterConnection "\\PrintServer\FinLaser"
wshNetWork.SetDefaultPrinter "\\PrintServer\FinLaser"
ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\\FileServer\Human Resources\"
wshNetwork.AddWindowsPrinterConnection "\\PrintServer\HrLaser"
wshNetWork.SetDefaultPrinter "\\PrintServer\HrLaser"
End If
Qu'en pensez vous ?
Cela peut être un probleme de droit ? de syntaxe ??
le site d'origine du script :
http://www.microsoft.com/resources/...sks004.asp
Merci Beaucoup !!
Aurélien

Poser une question


En fait la ligne posant problème est la suivante
strGroups = LCase(Join(CurrentUser.MemberOf))
Tu devrais essayer
...
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
set arrayGroup = CurrentUser.MemberOf
strGroups = LCase(Join( arrayGroup))
....
ou
....
Set CurrentUser = GetObject("LDAP://" & ADSysInfo.UserName)
strGroupS = ""
For Each strGroup in CurrentUser.memberOf
Set objGroup = GetObject("LDAP://" & strGroup)
strGroupS = strGroupS + LCase(objGroup.CN)
Next
....
Cordialement
Georges
"Aurelien" message de
news:415c5146$0$7321$
je vais essayer cela dès demain chez mon client !
Merci de ton aide !
"Georges MAUREL" <> a écrit dans le message de news:
en fait pour faire simple la methode Join() attend un tableau en parametre.
@+
Boss Hog
"aurelien" wrote in message
news:4161c54d$0$3078$