Serveur d'impression

Gestion des imprimantes et des pilotes avec PowerShell dans Windows 10 / Server 2016 – Serveur d’impression

Le 23 août 2019 - 6 minutes de lecture

Dans l'article précédent, nous avons examiné les scripts VBS classiques qui peuvent être utilisés pour gérer les imprimantes et les opérations d'impression dans toutes les versions de Windows, à partir de Windows XP. Aujourd'hui, nous allons examiner les commandes habituelles pour installer, gérer et supprimer des imprimantes, des ports d'impression, des pilotes et des files d'attente à l'aide de PowerShell. Ces méthodes de gestion des imprimantes à partir de PowerShell CLI peuvent être utilisées dans les systèmes d'exploitation modernes – Windows 10 / 8.1 et Windows Server 2019/2016/2012 R2.

Module PowerShell: Gestion d'impression

Parallèlement à la publication de Windows 8.1 et de Windows Server 2012 R2, Microsoft a publié une nouvelle version de PowerShell 4.0 (faisant partie de Windows Management Framework 4.0), qui étend considérablement la liste des cmdlets de gestion du serveur d'impression Windows. Vous pouvez obtenir la liste complète des cmdlets de gestion d'impression, de pilotes et de files d'attente disponibles dans le module PrintManagement sous Windows 10 (PowerShell v5) à l'aide de la commande suivante:

Get-Command –Module PrintManagement

module powershell PrintManagementLe module PrintManagement comprend 22 cmdlets PowerShell pour la gestion des imprimantes, des pilotes, des ports d’impression et des files d’attente:

  • Ajouter une imprimante – ajouter (installer) une nouvelle imprimante;
  • Ajouter-PrinterDriver – installer un nouveau pilote d'impression;
  • Ajouter-PrinterPort – créer un port d'impression local;
  • Get-PrintConfiguration – afficher la configuration de l'imprimante;
  • Get-Printer – afficher la liste des imprimantes installées sur l'ordinateur;
  • Get-PrinterDriver – afficher la liste des pilotes installés;
  • Get-PrinterPort – affiche la liste des ports de l’imprimante;
  • Get-PrinterProperty – afficher les propriétés de l'imprimante;
  • Get-PrintJob – obtenir une liste des travaux d'impression de l'imprimante;
  • Lire-PrinterNfcTag – obtenir des informations sur l’imprimante à partir de la balise NFC;
  • Retirer-imprimante – retirer l'imprimante;
  • Supprimer-PrinterDriver – supprimer le pilote d'imprimante;
  • Supprimer-PrinterPort – retirez le port imprimante;
  • Remove-PrintJob – supprimer un travail d'impression sur l'imprimante;
  • Renommer-Imprimante – renommer l'imprimante;
  • Redémarrer-ImprimerJob – redémarrez le travail d'impression;
  • Resume-PrintJob – reprendre le travail d'impression en pause;
  • Set-PrintConfiguration – définir la configuration de l'imprimante;
  • Set-Printer – mettre à jour la configuration de l'imprimante;
  • Set-PrinterProperty – changer les propriétés de l'imprimante;
  • Suspend-PrintJob – suspendre (mettre en pause) le travail d'impression;
  • Write-PrinterNfcTag – écrire des informations dans la balise NFC.

Pour obtenir des informations détaillées sur la syntaxe d'une commande, utilisez la commande suivante:

Obtenir de l'aide -Détaillé

Exemples d'utilisation de commandes:

Obtenir de l'aide < cmdlet_name> -Exemples

Examinons quelques exemples de tâches de gestion d’imprimantes classiques utilisant PowerShell dans Windows 10.

Ajout de pilotes d'imprimante au DriverStore

Pour répertorier les pilotes d’imprimante installés dans le Windows DriverStore:

Get-PrinterDriver

liste les pilotes d'impression installés avec Powershell

Ensuite, installez un nouveau pilote d'imprimante dans le système. Par exemple, vous souhaitez installer le pilote d’imprimante très répandu «HP Universal Printing PCL 6». Selon la documentation, la commande PowerShell pour ajouter un pilote d’impression devrait être la suivante:

Add-PrinterDriver -Name "HP Universal Printing PCL 6" -InfPath "C: Distr HP-pcl6-x64 hpcu118u.inf"

Cependant, lorsque vous essayez d'installer un pilote de cette manière, le message d'erreur suivant apparaît:

Add-PrinterDriver: un ou plusieurs paramètres spécifiés pour cette opération ont une valeur non valide.À la ligne: 1 caractère: 1+ Add-PrinterDriver -Name “HP Universal Printing PCL 6” -InfPath “C: Di… + ~~~~ ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: InvalidArgument: (MSFT_PrinterDriver: ROOT / StandardCimv2 / MSFT_PrinterDriver) [Add-PrinterDriver], CimException + FullyQualifiedErrorId: HRESULT 0x80070057, Add-PrinterDriver

erreur lors de l'installation du pilote d'imprimante à l'aide de la cmdlet powershell Add-PrinterDriver

Il se trouve que le pilote du fichier INF ne peut être installé que s'il existe déjà dans DriverStore. Il semble que vous ne puissiez pas installer un pilote d’impression qui ne se trouve pas dans le magasin de pilotes à l’aide de la commande Add-PrinterDriver. Pour ajouter un pilote au DriverStore, vous pouvez utiliser:

  • le script VBS décrit dans l'article précédent;
  • L'utilité – pnputil.exe. La commande peut ressembler à: pnputil.exe -i -a C: Distr HP-pcl6-x64 hpcu118u.inf (installe le pilote d’imprimante spécifique) ou pnputil.exe -i -a C: Distr HP-pcl6-x64 *. inf (installe tous les pilotes trouvés dans les fichiers INF du répertoire spécifié);pnputil - installe le pilote d’impression sur le magasin des pilotes
  • la cmdlet Ajouter-WindowsDriver qui permet d’intégrer des pilotes dans l’image Windows hors connexion.

Après avoir ajouté un pilote d'imprimante au référentiel de pilotes, vous devez l'installer sur le serveur d'impression:

Add-PrinterDriver -Name "HP Universal Printing PCL 6"

Add-PrinterDriver PowerShell

Pointe. Comment savoir ce que vous devez spécifier dans le champ du nom du pilote d’impression lors de l’installation du pilote via PowerShell? Le nom du pilote d'imprimante spécifié doit correspondre exactement à son nom de système interne, sinon une erreur apparaîtra lors de l'installation du pilote. Vous pouvez trouver le bon nom de pilote en utilisant le bouton get-printerdriver commande sur un ordinateur sur lequel ce pilote d’impression est déjà installé ou en examinant manuellement le fichier .inf du pilote.nom du pilote d'impression dans le fichier inf

Comment installer une imprimante avec PowerShell?

Créez un port IP pour une imprimante réseau (vous pouvez spécifier ici l'adresse IP de l'imprimante réseau et le nom du serveur d'impression distant):

Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26"

Avant d'ajouter un nouveau port d'impression IP, vous pouvez vérifier s'il existe:

$ portName = "IP_192.168.10.26"
$ checkPortExists = Get-Printerport -Name $ portname -ErrorAction SilentlyContinue
if (-not $ checkPortExists)
Add-PrinterPort -name $ portName -PrinterHostAddress "192.168.10.26"

À l'aide de la commande suivante, nous installerons et partagerons une nouvelle imprimante sur l'ordinateur:

Add-Printer -Name hp3027_Office1_Buh -DriverName "Pilote de classe PCL6 pour MFP HP LaserJet M3027" - Nom de port IP_192.168.10.26 - Partage de nom de partage "hp3027_1_BUh" - Publié

installer une imprimante réseau avec un port ip

RemarqueRemarque: pour effectuer la même opération (installer et partager une imprimante) à l’aide de scripts VBS (scripts d’administration d’impression), vous devez exécuter deux commandes différentes.

Après avoir exécuté ces commandes, une nouvelle imprimante partagée portant le nom «hp3027_Office1» apparaît dans le système.

show-printers-windows8 "width =" 341 "height =" 174 "srcset =" http://woshub.com/wp-content/uploads/2014/04/show-printers-windows8.jpg 341w, http: // woshub.com/wp-content/uploads/2014/04/show-printers-windows8-300x153.jpg 300w "=" (max-width: 341px) 100vw, 341px "/></p>
<p>Pour renommer l'imprimante, lancez la commande suivante:</p>
<p><code>Renommer-Imprimante -Nom "hp3027_1_Buh" -Nouveau "hp3027_F1_Salary"</code></p>
<h2 id=Répertorier les imprimantes installées sur un serveur d'impression

Affiche la liste complète des imprimantes installées sur cet ordinateur:

Get-Printer

Comme vous pouvez le constater, la commande affiche le nom de l'imprimante, son type (local ou réseau), son pilote, son port d'impression, si l'imprimante est partagée et publiée dans Active Directory.

Get-Printer: liste les imprimantes locales avec powershell

La plupart des cmdlets PrintManagement peuvent être utilisées pour afficher l'état et gérer les imprimantes, les pilotes et les files d'attente d'impression sur des ordinateurs distants (serveurs d'impression). Le nom de l’ordinateur ou du serveur distant est spécifié en tant qu’argument du -Nom de l'ordinateur paramètre.

Vous pouvez obtenir des informations sur les imprimantes installées sur un ordinateur distant à l'aide de la commande PowerShell:

Get-Printer -ComputerName rome-prnt1 | Nom de la liste de formats, Nom du pilote

Pour afficher uniquement une liste des imprimantes partagées, utilisez la commande:

Get-Printer -ComputerName rome-prnt1 | où Shared -eq $ true | fl Nom

Connexion à une imprimante partagée en réseau avec PowerShell

Pour connecter l’imprimante partagée à partir du serveur d’impression, utilisez la commande suivante:

Add-Printer -ConnectionName \ rome-prnt1 HP3027

Windows 10 utilise la dernière imprimante utilisée pour l'impression en tant qu'imprimante par défaut. Si vous souhaitez utiliser une imprimante par défaut fixe, exécutez la commande suivante:

Set-ItemProperty -Path "HKCU: LOGICIEL Microsoft Windows NT CurrentVersion Windows" -Name "LegacyDefaultPrinterMode" -Value 1 - Force

Pour définir l’imprimante par défaut, vous pouvez utiliser les commandes suivantes:

$ wsnObj = New-Object -COM WScript.Network
$ wsnObj.SetDefaultPrinter (% PrinterName%)

Comment supprimer une imprimante à l'aide de PowerShell?

Pour supprimer une imprimante, vous devez exécuter la commande PowerShell suivante:

Supprimer-Nom-Imprimante "hp3027_L1_O1"

Vous pouvez supprimer un pilote spécifique à l'aide de la cmdlet Remove-PrinterDriver:

Remove-PrinterDriver -Name "HP Universal Printing PCL 6"

Commentaires

Laisser un commentaire

Votre commentaire sera révisé par les administrateurs si besoin.