problème script VBS.

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.

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
aurelien@*nospam*aurelien.biz

  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
Guillaume Bordier [MS]
Le #52756
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:4155cfbb$0$23934$
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
aurelien@*nospam*aurelien.biz







Aurélien
Le #51975
Merci de votre réponse malheuresement cela ne fonctionne
pas... (snif)

j'ai une erreur :
Erreur : Redefinition de nom 'VbArray'

Je ne comprend pas pour le retour de member of est vide
car tous mes membres sont membres d'un groupe. De plus ce
qui est bizarre c'est que un utilisateur ne fonctionnait
pas le lundi (erreur à l'ouverture de session) puis le
lendement cela fonctionnait !

Qu'en pensez vous ?

Merci pour votre aide !
Aurélien
-----Message d'origine-----
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" message

news:4155cfbb$0$23934$
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.v


bs
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 "\PrintServerEngLa


ser"

wshNetwork.AddWindowsPrinterConnection "\PrintServerPlott


er"
wshNetWork.SetDefaultPrinter "\PrintServerEngLaser"

ElseIf InStr(strGroups, FINANCE_GROUP) Then


wshNetwork.MapNetworkDrive "g:", "\FileServerFinance"



wshNetwork.AddWindowsPrinterConnection "\PrintServerFinLa


ser"
wshNetWork.SetDefaultPrinter "\PrintServerFinLaser"

ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then

wshNetwork.MapNetworkDrive "g:", "\FileServerHuman
Resources"



wshNetwork.AddWindowsPrinterConnection "\PrintServerHrLas


er"
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/WindowsSer


v/2003/standard/proddocs/en-us/Default.asp?
url=/resources/documentation/WindowsServ/2003/standard/prod
docs/en-us/ctasks004.asp


Merci Beaucoup !!
Aurélien
aurelien@*nospam*aurelien.biz








.




Publicité
Poster une réponse
Anonyme