Utilisation d’imprimantes sur Windows

Cet exemple s’applique uniquement aux plateformes Windows.

Vous pouvez utiliser PowerShell pour gérer des imprimantes à l’aide de WMI et de l’objet COM WScript.Network de WSH.

Affichage de la liste des connexions d’imprimante

La manière la plus simple de répertorier les imprimantes installées sur un ordinateur consiste à utiliser la classe WMI Win32_Printer :

Get-CimInstance -Class Win32_Printer

Vous pouvez également répertorier les imprimantes à l’aide de l’objet COM WScript.Network qui est généralement utilisé dans des scripts WSH :

(New-Object -ComObject WScript.Network).EnumPrinterConnections()

Cette commande retournant une simple collection de chaînes correspondant à des noms de port et d’imprimante sans étiquettes distinctives, elle n’est pas facile à interpréter.

Ajout d’une imprimante réseau

Pour ajouter une nouvelle imprimante réseau, utilisez l’objet COM WScript.Network :

(New-Object -ComObject WScript.Network).AddWindowsPrinterConnection("\\Printserver01\Xerox5")

Définition d’une imprimante par défaut

Pour utiliser WMI afin de définir l’imprimante par défaut, recherchez l’imprimante dans la collection Win32_Printer, puis appelez la méthode SetDefaultPrinter :

$printer = Get-CimInstance -Class Win32_Printer -Filter "Name='HP LaserJet 5Si'"
Invoke-CimMethod -InputObject $printer -MethodName SetDefaultPrinter

L’objet COM WScript.Network est un peu plus simple à utiliser, car il dispose d’une méthode SetDefaultPrinter qui accepte uniquement le nom de l’imprimante en tant qu’argument :

(New-Object -ComObject WScript.Network).SetDefaultPrinter('HP LaserJet 5Si')

Suppression d’une connexion d’imprimante

Pour supprimer une connexion d’imprimante, utilisez la méthode WScript.Network RemovePrinterConnection:

(New-Object -ComObject WScript.Network).RemovePrinterConnection("\\Printserver01\Xerox5")