Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

problème script VBS.

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

2 réponses

Avatar
Guillaume Bordier [MS]
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" wrote in 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.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







Avatar
Aurélien
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" wrote in
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








.