Problème execution script mappage lecteurs
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.frsysvolmondomaine.frscriptslogon_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.
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:", "\FileServerUsers" & 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:", "\FileServerEngineering"
wshNetwork.AddWindowsPrinterConnection "\PrintServerEngLaser"
wshNetwork.AddWindowsPrinterConnection "\PrintServerPlotter"
wshNetWork.SetDefaultPrinter "\PrintServerEngLaser"
ElseIf InStr(strGroups, FINANCE_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\FileServerFinance"
wshNetwork.AddWindowsPrinterConnection "\PrintServerFinLaser"
wshNetWork.SetDefaultPrinter "\PrintServerFinLaser"
ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\FileServerHuman Resources"
wshNetwork.AddWindowsPrinterConnection "\PrintServerHrLaser"
wshNetWork.SetDefaultPrinter "\PrintServerHrLaser"
End If
Qu'en pensez vous ?
Cela peut être un probleme de droit ? de syntaxe ??
Merci Beaucoup !!
Aurélien
aurelien@*nospam*aurelien.biz
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.frsysvolmondomaine.frscriptslogon_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.
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:", "\FileServerUsers" & 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:", "\FileServerEngineering"
wshNetwork.AddWindowsPrinterConnection "\PrintServerEngLaser"
wshNetwork.AddWindowsPrinterConnection "\PrintServerPlotter"
wshNetWork.SetDefaultPrinter "\PrintServerEngLaser"
ElseIf InStr(strGroups, FINANCE_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\FileServerFinance"
wshNetwork.AddWindowsPrinterConnection "\PrintServerFinLaser"
wshNetWork.SetDefaultPrinter "\PrintServerFinLaser"
ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then
wshNetwork.MapNetworkDrive "g:", "\FileServerHuman Resources"
wshNetwork.AddWindowsPrinterConnection "\PrintServerHrLaser"
wshNetWork.SetDefaultPrinter "\PrintServerHrLaser"
End If
Qu'en pensez vous ?
Cela peut être un probleme de droit ? de syntaxe ??
Merci Beaucoup !!
Aurélien
aurelien@*nospam*aurelien.biz
Bonjour,
Vu l'erreur, il semble que votre script plante car le retour de "memberof"
est vide.
Je remplacerais la ligne :
strGroups = LCase(Join(CurrentUser.MemberOf))
Par
Const vbArray = 8192
tGroups=CurrentUser.MemberOf
if (VarType(tGroups) or vbArray ) then
strGroups = LCase(Join(CurrentUser.MemberOf))
else
strGroups = ""
end if
Guillaume
"Aurelien" news:4155ce7e$0$23954$