Choix d'une imprimante par défaut !

J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008 - 7 mai 2008 à 10:56
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008 - 7 mai 2008 à 13:02
Bonjour à tous et toutes,

Voici mon problème, actuellement en stage pour ma dernière année en Informatique de Gestion, je dois développer un petit script en VBS qui va me permettre de configurer une imprimante par défaut pour un ordinateur ! Ce script sera lancé automatiquement à l'ouverture de session, ce qui permet d'automatiser une partie d'une parc d'impression de l'école. de plus, je n'ai jamais fais de VBS et mon maître de stage me demande de me lancer la dedans !!!!

Situation :

1 - Il y a plusieurs imprimantes sur le réseau réparties dans plusieurs labo qui on chacun un range d'adresse IP différent !
2 - Chaque labo devra avoir sa propre imprimante par défaut en fonction de l'adresse IP de la machine. (160 ordinateurs répartis sur 8 labo)

A l'heure actuelle, je sais récupérer l'adresse IP de la machine et faire quelques petits tests mais rien de concluant. Comme j'effectue des recherches depuis plus d'une semaine, je commence à perdre courage et me tourne vers vous pour une aide éventuelle.

Je vous remercie d'avance et espère qu'on pourra trouver ensemble la solution !

Gilles

Voici tout de même des parties de mes ptits bouts de code :

'-----------------------------------------------------------------------------------------------------------------------------------------------
'Affectation de l'adresse IP de la mahcine à une variable
'-----------------------------------------------------------------------------------------------------------------------------------------------
For Each objAdapter in colAdapters
 
   If Not IsNull(objAdapter.IPAddress) Then
     
      For i = 0 To UBound(objAdapter.IPAddress)
        
         adresse_ip = objAdapter.IPAddress(i)
              
      Next
     
   End If
 
Next

'-----------------------------------------------------------------------------------------------------------------------------------------------
'Initialisation des variables objets
'-----------------------------------------------------------------------------------------------------------------------------------------------
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")Set colAdapters objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled True")
Set WshNetwork = CreateObject("WScript.Network")

4 réponses

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
7 mai 2008 à 11:18
salut,

regarde sur la page d'accueil il y a une source (VB6) pour faire çà, et il ne semble vraiment pas y avoir grand chose à changer pour une syntaxe VBS..

++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
7 mai 2008 à 11:25
Salut PCPT,

Je vais vite regarder à ce ptit projet afin de voir ce que ça fait et si ça repond plus ou moins aux recherches que je fais...

Je te tiens au courant !
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
7 mai 2008 à 11:40
Bon voilà je viens de regarder à ce petit projet, mais rien de concluant car j'ai déjà ce style de code et ici on ne gère pas le fait que l'imprimante est sur le réseau et qu'on peut la configurer automatiquement par défaut en fonction de son adresse IP !!!!

La je craque je désespère lol
0
J_il Messages postés 109 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 9 septembre 2008
7 mai 2008 à 13:02
Re à tous, voici un bout de code qui commence à prendre forme et qui fonctionne...

'###############################################################
'HAUTE ECOLE PROVINCIALE MONS BORINAGE CENTRE (HEPMBC)
'TRAVAIL DANS LE CADRE DU STAGE D'INTREGATION
'ELEVE : CATHERINE GILLES
'3EME BACHELIER EN INFORMATIQUE DE GESTION A L'IEPS DE COLFONTAINE
'ANNEEE SCOLAIRE : 2007-2008

'OBJETIF : ce script sert àconfigurer une imprimante par défaut en fonction de son adresse IP et en fonction
'du local lequel se trouve la machine
'###############################################################

'-----------------------------------------------------------------------------------------------------------------------------------------------
'Déclarations des variables
'-----------------------------------------------------------------------------------------------------------------------------------------------
Dim WshNetwork
Dim objAdapter
Dim adresse_ip
Dim octet
Dim i
Dim longueur_ip
Dim tableau_adresse(5)
Dim adresse
Dim var_test

'-----------------------------------------------------------------------------------------------------------------------------------------------
'Initialisation des variables
'-----------------------------------------------------------------------------------------------------------------------------------------------
adresse_ip = 0
i = 0
strComputer = "."
n = 1

'-----------------------------------------------------------------------------------------------------------------------------------------------
'Initialisation des variables objets
'-----------------------------------------------------------------------------------------------------------------------------------------------
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")Set colAdapters objWMIService.ExecQuery ("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled True")
Set WshNetwork = CreateObject("WScript.Network")

'-----------------------------------------------------------------------------------------------------------------------------------------------
'Boucle qui va ajouter les ranges d'adresse IP dans un tableau
'-----------------------------------------------------------------------------------------------------------------------------------------------
For j = 0 to 5

    tableau_adresse(j) = "169.254.254.25" & j

    'MsgBox "Résultat ajout dans tableau : " & tableau_adresse(j)
   
Next

'-----------------------------------------------------------------------------------------------------------------------------------------------
'Affectation de l'adresse IP de la mahcine à une variable
'-----------------------------------------------------------------------------------------------------------------------------------------------
For Each objAdapter in colAdapters
 
   If Not IsNull(objAdapter.IPAddress) Then
     
      For i = 0 To UBound(objAdapter.IPAddress)
        
         adresse_ip = objAdapter.IPAddress(i)
              
      Next
     
   End If
 
Next

'-----------------------------------------------------------------------------------------------------------------------------------------------
'Test pour être sur qu'il y a une connexion au serveur car si pas d'IP --> problème
'Ce test peut être facultatif mais autant le mettre
'-----------------------------------------------------------------------------------------------------------------------------------------------If adresse_ip "0.0.0.0" Or adresse_ip " " then

    MsgBox "Attention, pas de configuration réseau !", vbInformation, "Pas de configuration réseau"
    Wscript.Quit 'Si il y a erreur, il sort du script
       
End if

MsgBox "Adresse Ip : " & adresse_ip

'-----------------------------------------------------------------------------------------------------------------------------------------------
'Boucle pour lire le tableau et test pour savoir si l'adresse IP est bien dans le tableau
'-----------------------------------------------------------------------------------------------------------------------------------------------
For k = 0 to 5
   
    If adresse_ip <> CStr(tableau_adresse(k)) then
   
        'MsgBox "L'adresse IP n'est pas la même : " & var_test & " " & adresse_ip
   
    Else
   
        'MsgBox "L'addrese IP est la même : " & var_test & " " & adresse_ip
        'Définition de l'imprimante par défaut
        WshNetwork.SetDefaultPrinter "\\printserver\laser_31a"
               
    End if
   
Next
0
Rejoignez-nous