Bonjour,
Pouvez vous me donner un petit coup de main sur un truc qui dépasse mes compétences.
J'ai 40 imprimantes à remplacer et j'ai fait un petit script pour m'éviter de passer sur 400 postes.
Pas de problème pour remplacer une imprimante par contre je récupère le nom de l'imprimante par défaut dans une variable afin de mettre sa remplacante par défaut.
Lorsque j'exécute mon script il se tape de la condition et m'exécute le code. Si dans la condition je met une chaine de caractère à la place de la variable ça fonctionne.
J'ai mis en rouge l'endroit ou j'ai problème.
Merci d'avance pour votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Option Explicit  
Dim objNetwork, objPrinter, intDrive, intNetLetter, oShell, strvalue, strPrinter  

Set objNetwork = CreateObject("WScript.Network")  
Set oShell = CreateObject("WScript.Shell")  
Set objPrinter = objNetwork.EnumPrinterConnections  

'Imprimante par défaut  
strValue = "HKCU\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device"  
strPrinter = oShell.RegRead(strValue)  
strPrinter = Split(strPrinter, ",")(0)  

'Lecture du tableau  
For intDrive = 0 to objPrinter.Count -1 Step 2  
 intNetLetter = IntNetLetter +1  
   
 'Si le nom de l'ancienne imprimante est trouvée, elle est remplacée par la nouvelle  
If objPrinter.Item(intDrive +1) = strPrinter then 
objNetwork.AddWindowsPrinterConnection "\\srv-impr\MAGLIQUIDE"  
  objNetwork.SetDefaultPrinter "\\srv-impr\MAGLIQUIDE"  
  objNetwork.RemovePrinterConnection "\\srv-imp\LXMKMAGML"      
  elseIf objPrinter.Item(intDrive +1) = "\\srv-imp\LXMKMAGML" then  
   objNetwork.AddWindowsPrinterConnection "\\srv-impr\MAGLIQUIDE"  
   objNetwork.RemovePrinterConnection "\\srv-imp\LXMKMAGML"  
     
 End If  
 Next  
Wscript.Quit(1)