Appeller vbs dans BAT ? + Script print réseau VBS [BAT/VBS] - VB/VBA/VBS - Programmation
Marsh Posté le 02-02-2006 à 14:12:27
Ton vbs se comporte comme n'importe quel fichier executable, donc il suffit d'écrire son dans le .bat pour qu'il s'execute
Marsh Posté le 02-02-2006 à 14:41:39
Yes, merveilleux !
Par contre, j'avais trouvé ça pour l'imprimante :
' Printers.vbs - Windows Logon Script.
Set objNetwork = CreateObject("WScript.Network" )
objNetwork.AddWindowsPrinterConnection "\\nom_serveur\nom_printer"
Mais ça me dit pas trop comment faire en sorte que cette imprimante ne soit pas prise par défaut et surtout qu'elle prenne par défaut le format A4 au lieu de Letter.
C'est gentil de m'aider, j'suis vraiment une brêle en prog
Marsh Posté le 02-02-2006 à 14:51:17
là je peux pas trop t'aider, je n'ai jamais touché à la configurationdes imprimantes en VBS
Par contre je te conseille de faire un tour sur la MSDN librairy et sur la page ci dessous, tu devrais trouver ton bonheur:
http://www.microsoft.com/technet/s [...] garch.mspx
Marsh Posté le 02-02-2006 à 15:01:07
Yes, cool ! Merci pour le lien =)
Je vais fouiller et j'vous tiens au courant.
@+ !
Marsh Posté le 02-02-2006 à 15:39:30
J'ai aucune expérience en VBS, j'ai fait un peu de VB.Net aux cours il y a 2 ans bientôt et c'est tout.
Voilà ce que j'ai pondu de mes petits doigts, ça devrait ressembler à quelque chose dans ce goût-là :
' Printers.vbs - Windows Logon Script.
Set objNetwork = CreateObject("WScript.Network" )
objNetwork.AddWindowsPrinterConnection "\\nom_srv\nom_printer"
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = 'ScriptedPrinter'" )
If objPrinter.FormatPaper in colInstalledPrinters = "Letter" Then
objPrinter.FormatPaper = "A4"
End If
Je suis vraiment pas sûr de mon If... quelqu'un pourrait me donner un coup de main svp ? Ça serait vraiment cool, merci.
Marsh Posté le 02-02-2006 à 15:45:41
effectivement, il y a un problème avec ton IF
Tu essaye de faire quoi, j'arrive pas trop à comprendre ...
Marsh Posté le 02-02-2006 à 15:51:57
Ben j'aimerais juste faire en sorte que le format du papier par défaut soit A4 au lieu de Letter, et ce uniquement sur l'imprimante montée par script (il n'y en a qu'une : celle que je veux justement installer)
Marsh Posté le 02-02-2006 à 15:57:24
J'ai pu corriger mon IF (et le reste aussi) :
' Printers.vbs - Windows Logon Script.
Set objNetwork = CreateObject("WScript.Network" )
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
objNetwork.AddWindowsPrinterConnection "\\nom_serveur\nom_printer"
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Name = 'ScriptedPrinter'" )
For each objPrinter in colInstalledPrinters
Wscript.Echo "Paper: " & _
objPrinter.Paper
If objPrinter.FormatPaper = "Letter" Then
objPrinter.FormatPaper = "A4"
End If
next
Mais le changement du format de papier ne se fait toujours pas :-/
Marsh Posté le 02-02-2006 à 16:08:58
t'es sur que la propriété FormatPaper existe ?
Marsh Posté le 02-02-2006 à 16:15:46
ReplyMarsh Posté le 02-02-2006 à 17:29:28
maille-hem a écrit : Ben non justement... et j'ai pas moyen de vérifier ! :-/ |
Vu qu'il n'y en a aucune trace dans la MSDN, je pense que FormatPaper n'existe pas. ça doit être un des attributs de l'imprimante. essaye de lister les attributs de l'imprimante ainsi que leur valeurs pouv oir si tu trouve sle format du papier
Marsh Posté le 02-02-2006 à 17:58:56
Bien, j'ai pu corriger divers éléments du script et en cherchant bien j'ai trouvé la propriété qui m'intéressait. J'ai rebossé le script, ça m'a l'air mieux mais j'ai une erreur à la ligne 12 (FOR) et je vois pas d'où ça vient.
' Printers.vbs - Windows Logon Script.
Set objNetwork = CreateObject("WScript.Network" )
objNetwork.AddWindowsPrinterConnection ("\\serveur\printer" )
Set objPrinter = objNetwork
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2" )
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_PrinterConfiguration Where Name = '\\serveur\printer'" )
For each objPrinter in colInstalledPrinters
If objPrinter.PaperSize = "1" Then
objPrinter.PaperSize = "9"
End If
WScript.Echo "PaperSize: " & objPrinter.PaperSize
next
Du coup, j'peux pas savoir si le script fonctionne ou pas ....
Marsh Posté le 02-02-2006 à 18:14:29
Elle sert à quoi cette ligne ?
Set objPrinter = objNetwork
sinon, je vois pas ce qui merde dans le script. Il te met quoi comme erreur ?
Marsh Posté le 03-02-2006 à 13:57:17
mareek a écrit : Elle sert à quoi cette ligne ? |
À mettre le contenu de objNetwork dans objPrinter.... non ? Si j'utilise directement objPrinter ça joue direct ?
Bref, après avoir enlevé cette ligne, j'ai ce code d'erreur :
Ligne : 11
Caract. : 1
Erreur : 0x80041017
Code : 80041017
Source : (null)
PS : c'est vraiment sympa de m'aider... chuis trop une brêle en VBS
Marsh Posté le 03-02-2006 à 14:35:55
Là ça dépasse mes compétences, désolé. Je n'ai jamais fais de scripts WMI et je ne sais pas du tout comment ça marche
Marsh Posté le 03-02-2006 à 16:40:00
Okay, merci quand même de t'être penché sur problème
Des amateurs ?
Marsh Posté le 02-02-2006 à 12:36:30
Hello tout le monde,
Petit souci qui se pose... on a reçu une nouvelle imprimante réseau et je dois la mettre chez tous les utilisateurs.
Le premier hic (et oui, cela aurait été trop simple...) c'est que l'imprimante rajoutée ne doit pas être par définie par défaut.
Inhérent à ce problème, en voici un autre qui se pose : la moitié de notre domaine étant en français et l'autre en anglais (dont le DC principal), le format par défaut du papier lorsque tu montes l'imprimante est à "Letter" alors qu'il me le faudrait en A4. Vu que ça ne doit pas être définissable dans un Batch, j'ai alors opté pour le VBS, plus puissant à bien des égards... mais je maîtrise pas le langage
Donc, maintenant faudrait que je puisse appeller ce VBS fraîchement crée via le bat que j'ai déjà dans mon NetLogon (sans ça je dois changer le nom du srcipt dans TOUS les profils users dans AD )
Ça serait vraiment sympa de m'aider sur ce coup-là, merci d'avance à ceux qui prendront 5min.
@+ !