Serveur d’impression : lister les imprimantes avec le nom et l’adresse IP

Serveur d’impression : lister les imprimantes avec le nom et l’adresse IP

I. Présentation

Dans ce tutoriel, nous allons voir comment utiliser PowerShell pour lister les imprimantes installées sur un serveur d’impression Windows, en indiquant le nom et l’adresse IP.

Lorsque l’on utilise la console Gestion des impressions, on peut afficher plusieurs informations comme le nom de l’imprimante, le nom du pilote, le nom du port, etc… Mais pas l’adresse IP. C’est dommage, surtout si vous ne mettez pas l’adresse IP dans le nom de vos ports.

Encore une fois, PowerShell va nous sauver la mise, car avec un petit bout de code de quelques lignes, on va pouvoir lister les imprimantes et obtenir l’adresse IP !

II. PowerShell : Get-Printer et Get-PrinterPort

En PowerShell, on peut lister les imprimantes avec la commande Get-Printer.

Get-Printer

Elle nous retourne différentes propriétés, un peu dans le même esprit que la console Gestion des impressions.

Nous avons aussi un autre cmdlet, nommé Get-PrinterPort, qui lui retourne des informations sur les ports. Intéressant… d’autant plus que l’on peut avoir le nom du port, mais aussi l’adresse IP en regardant la propriété PrinterHostAddress.

Get-PrinterPort

Pour obtenir l’adresse IP d’une imprimante, il faut spécifier le nom du port de l’imprimante grâce au paramètre -Name (ou avec un filtre Where, mais c’est moins efficient). Puis, récupérer seulement la propriété PrinterHostAddress, comme ceci :

(Get-PrinterPort -Name "MonPortNumero1" ).PrinterHostAddress

Nous avons tout ce qu’il nous faut, sauf que l’on a le nom de l’imprimante d’une part, et l’adresse IP du port de l’autre. Il ne reste plus qu’à faire opérer la magie de PowerShell pour ressortir un joli tableau avec nos deux informations, grâce à un objet personnalisé.

Nous récupérer la liste des imprimantes et effectuer une boucle Foreach.

Get-Printer | Foreach 

Au sein de cette boucle, nous allons construire notre objet personnalisé et il sera alimenté à chaque tour de boucle. Il aura deux propriétés (mais on pourrait ajouter d’autres champs) : le nom et l’adresse IP.

Ce qui nous donne le bout de code suivant :

Get-Printer | Foreach

   $PrinterName = $_.Name
   $PrinterPort = $_.PortName
   $PrinterIPAddress = (Get-PrinterPort -Name $PrinterPort).PrinterHostAddress

   New-Object PSObject -Property @
      "Nom" = $PrinterName
      "AdresseIP" = $PrinterIPAddress
   

   Clear-Variable PrinterIPAddress

Si vous souhaitez une sortie plus sympa, effectuez un export CSV de cette liste ou ajoutez « | Out-GridView » après l’accolade finale.

Voilà, le tour est joué !

Hébergez votre site à partir de 2$ sur 👉👉👉

À propos Santana

Analyste en cybersécurité avec 5 ans d'expérience dans la protection des systèmes d'information contre les menaces et les attaques. Expertise dans la surveillance des réseaux, l'analyse des vulnérabilités, et la gestion des incidents de sécurité. Passionnée par l'innovation technologique et la mise en œuvre de solutions de sécurité robustes pour protéger les données sensibles et assurer la conformité réglementaire.

Vérifiez également

Windows Server 2022 - Activer une version d'évaluation en standard ou datacenter

Passer de Windows Server 2022 Evaluation à Standard ou Datacenter

I. Présentation Dans ce tutoriel, nous allons apprendre à passer d’une machine sous Windows Server …

Windows Server 2022 - SNMP

Comment installer et configurer SNMP sous Windows Server 2022 ?

Table de Matieres1 I. Présentation2 II. Installer SNMP sous Windows Server 20223 III. Installer SNMP …

Windows Server 2022 : configuration du DNS over HTTPS (DoH)

Windows Server 2022 : configuration du DNS over HTTPS (DoH)

Table de Matieres1 I. Présentation2 II. Utiliser un DNS chiffré dans Windows Server 20223 III. …

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.