GNT sans publicité, site mobile, fonctionnalitées exclusives...

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
Lire les 3 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Georges MAUREL
Le #399270
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" 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/...sks004.asp

Merci Beaucoup !!
Aurélien


aurelien
Le #403188
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/...sks004.asp


Merci Beaucoup !!
Aurélien




Boss Hog
Le #403109
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" 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/...sks004.asp


Merci Beaucoup !!
Aurélien






Publicité
Suivre les réponses
Poster une réponse
Anonyme