Forum Clubic

Script batch pour connecter des imprimantes réseaux sur Windows Server

Bonjour,
Je recherche en vain un script batch pour connecter des imprimantes réseaux lors de la connexion d’un utilisateur Active Directory sur un Windows Server.

A savoir il y a 3 “salles” donc 3 imprimantes et j’aimerais que lorsqu’un utilisateur se connecter dans la salle 1 qu’il soit rattaché à l’imprimante de cette salle.

J’ai déjà vu ca dans des sociétés mais impossible d’avoir les scripts de connexion.
En tout cas on m’a dit que cela se faisait facilement avec un .bat

Merci beaucoup

Pour la connexion à l’imprimante, tu peux utiliser “rundll32.exe printui.dll,PrintUIEntry” (commande “rundll32.exe printui.dll,PrintUIEntry /?” pour l’aide).
Effectivement tu peux y faire appel depuis un .bat mais sache que ça peut également se faire depuis un Script VBS (avec Run() de l’objet WScript.Shell).

Cela dit, ça ne réponds pas au problème de : comment savoir dans quelle salle se trouve l’utilisateur (plusieurs solutions : plages IP, informations sur l’objet “Ordinateur” dans l’AD, sites AD, etc.)
Edité le 05/03/2008 à 18:08

La salle ce n’est pas un probleme… je fais une UO avec les ordinateurs en fonction des salles puis j’applique le script en conséquence, il y aura 3 scripts en fait.

Je suis intéressé par ce script VBS si ya pas moyen de faire ca directement en batch comme je fais pour les lecteurs réseaux avec net use… c’est tellement mieux 1 ligne plutot que 20 pour dire la meme chose :]

Bah le VBS te permet d’avoir un seul script qui utilise l’objet Ordinateur dans l’AD pour savoir dans quelle OU il se trouve et donc à quelle imprimante le connecter.
Sinon, la commande que je t’ai filé (rundll32.exe printui.dll,PrintUIEntry) va très bien dans un .BAT

Ok ca a l’air pas mal en VBS, auriez-vous le script sous la main ?
Merci encore

Comme je l’ai dit c’est surtout la DLL printui.dll qui est importante.

Admettons que l’imprimante de la Salle 1 est partagée depuis le serveur serveur_impression.domaine.local sous le nom imprimante1.

Après dans le VBS tu peux faire ce qui suit (/y = Définit l’imprimante comme imprimante par défaut ; /ga = Ajout ; /in = Imprimante réseau, /n = UNC de l’imprimante) :

CreateObject("WScript.Shell").Run("rundll32.exe printui.dll,PrintUIEntry /y /ga /in /n\\serveur_impression.domaine.local\imprimante1 /z")

Y’a également un truc plus simple, en VBS uniquement, mais qui ne permet pas une gestion aussi fine que printui.dll :

WScript.CreateObject("WScript.Network").AddWindowsPrinterConnection "\\serveur_impression.domaine.local\imprimante1"

Donc il n’y a que ca à mettre ?
Une petite ligne ? C’est skil me faut car sur d’autres sites c’était des scripts de plusieurs dizaines de lignes :]
Merci à toi en tout cas

Faut deja deployer WSH sur toutes machines.
Si t’envoie ce script en reseau toutes les machines vont ajouter cette imprimante (Lis le script) enfin peut-être que ce te suffit…
Edité le 06/03/2008 à 10:07

le plus simple dans ton cas est de mettre des GPO sur chaque OU executant un script de logon.

le script vbs est une bonne alternative
et en voilà un qui complète un poil celui de Raynor en déclarant l’imprimante en question comme imprimante par défaut.

Set WshNetwork = CreateObject(“WScript.Network”)
WshNetwork.AddWindowsPrinterConnection “\serverimpression\nomdel’imprimante”
WshNetwork.SetDefaultPrinter “\serverimpression\nomdel’imprimante”

Ok, je vais essayer en batch quand meme car je pense que c’est le plus léger (si c’est possible en une ligne à l’aide de rundll32) sinon j’essaierai avec un script vbs :slight_smile:

Merci bcp pour votre aide !

Avec “con2prt” ?
ils disent que c’est pour XP, mais vu que c’est un kit “NT” ça doit marcher aussi sur NT.

www.ac-nancy-metz.fr…
Edité le 06/03/2008 à 12:39