OVH Cloud OVH Cloud

problele script VBS logon

3 réponses
Avatar
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/documentation/WindowsServ/2003/standard/proddocs/en-us/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/ctasks004.asp


Merci Beaucoup !!
Aurélien

3 réponses

Avatar
Georges MAUREL
Bonjour,
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" a écrit dans le
message de
news:415c5146$0$7321$
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.

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:", "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 ??

le site d'origine du script :

http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/ctasks004.asp

Merci Beaucoup !!
Aurélien


Avatar
aurelien
Merci pour tout !!

je vais essayer cela dès demain chez mon client !

Merci de ton aide !

"Georges MAUREL" <> a écrit dans le message de news:

Bonjour,
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" a écrit dans
le message de
news:415c5146$0$7321$
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.

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:", "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 ??

le site d'origine du script :

http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/ctasks004.asp


Merci Beaucoup !!
Aurélien




Avatar
Boss Hog
Salut,
en fait pour faire simple la methode Join() attend un tableau en parametre.

@+
Boss Hog
"aurelien" wrote in message
news:4161c54d$0$3078$
Merci pour tout !!

je vaisessayer cela dès demina chez mon client !

Merci de ton aide !

"Georges MAUREL" <> a écrit dans le message de news:

Bonjour,
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" a écrit dans
le message de
news:415c5146$0$7321$
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.

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:", "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 ??

le site d'origine du script :




http://www.microsoft.com/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/Default.asp?url=/resources/documentation/WindowsServ/2003/standard/proddocs/en-us/ctasks004.asp


Merci Beaucoup !!
Aurélien