SetDefaultPrinter sous TSE 2008 avec redirection imprimante Local
Bonjour et bonne fêtes à tous !!!!
Je me permets de vous consulter car je rencontre un problème au niveau de sélection d’imprimante.
Ma problématique se trouve chez un de mes clients qui vient de passer sous TSE 2008 Serveur.
J’ai un contrôleur de domaine avec prêt de 800 utilisateurs qui se trouvent tous dans une même OU
Ce n’est pas moi ai choisi !
Ces mêmes utilisateurs sont sur des sites différents avec chaque site plusieurs étages.
Chaque utilisateur se connecte à une session TSE.
Lors des connexions TSE, l’imprimante locale est remontée dans la session TSE
J’ai un serveur d’impression avec tous les copieurs et les pilotes d’impressions.
Ma problématique est simple :
Je cherche à utiliser l’imprimante locale pour identifier quel imprimante du serveur d’impression doit être défini comme impression par défaut. (Encore une fois pas le choix, le client n’a aucune autre manière d’identifier le lieu.)
Il y a encore quelques semaines, le serveur TSE était sous 2003 serveur. Et un script de ma composition fonctionnait très bien.
Depuis que le client a passé ce serveur TSE en 2008, le script VBS ne fonctionne plus.
Le script récupéré l’imprimante par défaut de la session TSE (qui est la redirection de l’imprimante de la session locale) puis allait chercher l’équivalent sur le serveur d’impression.
Maintenant, sur 2008, le script installe bien mon imprimante mais refuse de la passer par défaut.
La fonction VBS SetDefaultPrinter ne fonctionne pas.
J’ai testé autre chose :
Quand, lors de la connexion à TSE, l’imprimante local n’est pas récupéré, le SetDefaultPrinter fonctionne bien.
Est-ce normal ?
Pouvez-vous m’aider ?
Ci-dessous le script VBS :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
'instance WNetwork
Set wshNetwork = WScript.CreateObject("WScript.Network")
NomMachine = WshNetwork.ComputerName
If NomMachine = "PC-DMEXIS" then
'Recuperation des imprimantes
strComputer = "."
On Error Resume Next
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
'si imp est par defaut
If objPrinter.Default = True Then
NomImpDef=objprinter.Name
'expression reguliere
set Modele = new RegExp
'modele de recherche
Modele.pattern=".*\("
'application du modele
Set correspondances = Modele.execute(NomImpDef)
If correspondances.count<>0 Then
For i=0 To correspondances.count-1
'suppression des 2 dernier caractere
NewNomImp = Left(correspondances(i),Len(correspondances(i))-2)
Next
End if
'ajout de l'imp
wshNetwork.addWindowsPrinterConnection "\\SERVEUR-TESTIMP.DOMAINETEST.LOCAL\" & NewNomImp
'imp par defaut
wshNetwork.setdefaultprinter "\\SERVEUR-TESTIMP.DOMAINETEST.LOCAL\" & NewNomImp
Else
End If
Next
Else
wscript.echo "Pas sur TSE"
End If |