Správa PowerShell tlačiarní a tlačových ovládačov vo Windows 10 / Server 2016

V predchádzajúcom článku sme sa zaoberali starými školami vbscriptov, ktoré by sa mohli použiť na správu tlačiarní a tlače vo všetkých verziách systému Windows, počnúc systémom Windows XP. Dnes sa pozrieme na typické príkazy na vytváranie, odstraňovanie tlačiarní, portov a tlačových ovládačov v systéme Windows pomocou programu PowerShell. Tieto metódy riadenia tlačiarne je možné použiť v moderných operačných systémoch - Windows 10, 8.1 a Windows Server 2012 R2 / 2016/2019.


obsah:

  • Modul PowerShell: PrintManagement
  • Nainštalujte ovládač tlačiarne do úložiska ovládačov
  • Nainštalujte novú tlačiareň pomocou programu PowerShell
  • Zoznam tlačiarní na tlačovom serveri pomocou programu PowerShell
  • Pripojte sieťovú tlačiareň z prostredia PowerShell
  • Odstránenie tlačiarne pomocou PowerShell

Modul PowerShell: PrintManagement

S vydaním systému Windows 8.1 a Windows Server 2012 R2 spoločnosť Microsoft vydala novú verziu PowerShell 4.0 (súčasť Windows Management Framework 4.0), ktorá významne rozšírila zoznam rutín na správu tlačového servera založeného na systéme Windows. Úplný zoznam rutín cmdlet pre správu tlačiarní, ovládačov a tlačových frontov dostupných v module PrintManagement v systéme Windows 10 (PoSh v5) možno zobraziť pomocou príkazu:
Get-Command -Module PrintManagement

Modul PrintManagement poskytuje 22 rutín PowerShell na správu tlačiarní, ovládačov, tlačových portov a frontov:

  • Add-Printer - pridanie (inštalácia) novej tlačiarne;
  • Add-PrinterDriver - nainštalujte nový ovládač tlačiarne;
  • Add-PrinterPort - vytvorenie tlačového portu;
  • Get-PrintConfiguration - zobrazenie nastavení tlače tlačiarne;
  • Get-Printer - zobrazí zoznam tlačiarní nainštalovaných v počítači;
  • Get-PrinterDriver - zoznam nainštalovaných ovládačov tlače;
  • Get-PrinterPort - zobrazenie zoznamu tlačových portov;
  • Get-PrinterProperty - zobrazenie vlastností tlačiarne;
  • Get-PrintJob - získajte zoznam tlačových tlačových úloh;
  • Read-PrinterNfcTag - získajte informácie o tlačiarni zo značky NFC;
  • Remove-Printer - vyberte tlačiareň;
  • Remove-PrinterDriver - odstráňte ovládač tlačiarne;
  • Remove-PrinterPort - odstráňte port tlačiarne;
  • Remove-PrintJob - odstráňte tlačovú úlohu z tlačiarne;
  • Premenovať tlačiareň - premenujte tlačiareň;
  • Restart-PrintJob - reštartuje tlačovú úlohu;
  • Resume-PrintJob - spustenie pozastavenej úlohy
  • Set-PrintConfiguration - nastavenie konfigurácie tlačiarne;
  • Set-Printer - aktualizácia konfigurácie tlačiarne;
  • Set-PrinterProperty - zmena vlastností tlačiarne;
  • Suspend-PrintJob - pozastavenie tlačovej úlohy;
  • Write-PrinterNfcTag - zapisuje informácie do značky NFC.

Podrobné informácie o syntaxi pre konkrétny príkaz možno získať takto:

Získajte pomoc - podrobne

Príklady použitia príkazov:

Získať pomoc - príklady

Pozrime sa na niekoľko príkladov typických scenárov správy tlačiarne v systéme Windows 10 z prostredia PowerShell..

Nainštalujte ovládač tlačiarne do úložiska ovládačov

Zoznam ovládačov tlače, ktoré sú nainštalované v úložisku ovládačov systému Windows:

Get-PrinterDriver

V systéme sme nastavili nový tlačový ovládač, napríklad HP Universal Printing PCL 6. Podľa dokumentácie by príkaz PowerShell na pridanie ovládača mal byť nasledujúci:

Add-PrinterDriver - Názov "HP Universal Printing PCL 6" -InfPath "C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf"

Ak sa však pokúsite nainštalovať ovládač týmto spôsobom, objaví sa chyba:

Add-PrinterDriver: Jeden alebo viac zadaných parametrov pre túto operáciu má neplatnú hodnotu. Na riadku: 1 znak: 1 + Pridať ovládač tlačiarne - Názov „HP Universal Printing PCL 6“ -InfPath “C: \ Di ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ + CategoryInfo: InvalidArgument: (MSFT_PrinterDriver: ROOT / StandardCimv2 / MSFT_PrinterDriver) [Add-PrinterDriver], CimException + FullyQualifiedErrorId: HRESULT 0x80070057, Add-PrinterDriver

Ukazuje sa, že ovládač zo súboru inf sa dá pridať iba vtedy, ak je už v úložisku ovládačov DriverStore (viac informácií o úložisku nájdete tu). Ukázalo sa, že pomocou príkazu Add-PrinterDriver nemôžete nainštalovať ovládač, ktorý nie je v úložisku systémových ovládačov. Na inštaláciu ovládača v DriverStore môžete použiť:

  • skript vbs z predchádzajúceho článku;
  • užitočnosť pnputil.exe. Formát je: pnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf (nainštalujte konkrétny ovládač tlačiarne) alebo pnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ *. inf (nainštalujte všetky ovládače nájdené v inf súboroch zadaného adresára);
  • Rutina Add-WindowsDriver na integráciu ovládačov do obrazu systému Windows v režime offline.

Po pridaní ovládača tlačiarne do úložiska ho musíte pridať do zoznamu dostupných tlačových serverov.

Add-PrinterDriver - Názov "HP Universal Printing PCL 6"

rada. Ako viem, čo mám zadať do poľa s názvom tlačového ovládača pri inštalácii ovládača pomocou programu PowerShell? Zadaný názov ovládača tlačiarne sa musí presne zhodovať s interným názvom systému, inak sa počas inštalácie objaví chyba. Správny názov ovládača môžete zistiť pomocou príkazu get-printerdriver v systéme, v ktorom je tento ovládač už nainštalovaný, alebo manuálnym preskúmaním súboru .inf ovládača.

Nainštalujte novú tlačiareň pomocou programu PowerShell

Vytvorte ip port pre tlač na sieťovej tlačiarni (tu môžete zadať tak IP adresu sieťovej tlačiarne, ako aj názov vzdialeného tlačového servera):

Add-PrinterPort - Názov "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26" 
Pred pridaním portu môžete skontrolovať, či existuje:

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

Pomocou nasledujúceho príkazu vytvoríme novú tlačiareň v systéme a zverejníme ju (budeme ju zdieľať):
Pridať tlačiareň - meno hp2050_Office1_Buh -DriverName "Ovládač triedy HP Deskjet 2050 J510 series" -PortName IP_192.168.10.26 -Shared -ShareName "hp2050_1_BUh" - Publikované

poznámka. Všimnite si, že ak chcete vykonať rovnakú operáciu v prípade použitia skriptov vbs (Printing Admin skripty), musíte spustiť dva rôzne príkazy.
Ak chcete premenovať tlačiareň, stačí spustiť príkaz:

Premenovať tlačiareň - meno "hp2050_Office1_Buh" -NewName "hp2050_Salary"

Po dokončení týchto príkazov sa v systéme zobrazí nová zdieľaná tlačiareň ako hp2050_Office1_Buh.

Zoznam tlačiarní na tlačovom serveri pomocou programu PowerShell

Uvádzame úplný zoznam tlačiarní nainštalovaných v tomto počítači:

Get-tlačiareň

Ako vidíte, príkaz zobrazuje názov tlačiarne, typ (lokálny alebo sieťový), ovládač, port pre tlač, či je tlačiareň zdieľaná a tlačiareň je publikovaná v AD.

Väčšina rutín modulu PrintManagement sa dá použiť na zobrazenie stavu a správu tlačiarní, ovládačov a tlačových frontov na vzdialených počítačoch. Názov vzdialeného počítača alebo servera je zadaný ako argument parametra -ComputerName.

Pomocou programu PowerShell môžete získať informácie o nainštalovaných tlačiarňach na vzdialenom počítači (tlačovom serveri), spustite príkaz:

Get-Printer -ComputerName msk-prnt1 | Názov formátu súboru, meno vodiča

Ak chcete zobraziť iba zdieľané tlačiarne, použite príkaz:

Get-Printer -ComputerName msk-prnt1 | kde Shared -eq $ true | fl Meno

Pripojte sieťovú tlačiareň z prostredia PowerShell

Na pripojenie tlačiarne z tlačového servera použite príkaz:

Pridať tlačiareň - názov pripojenia \\ msk-prnt1 \ HPCL3020

V systéme Windows 10 sa ako predvolená tlačiareň používa posledná tlačiareň, ak chcete v predvolenom nastavení používať pevnú tlačiareň, spustite príkaz:

Set-ItemProperty -Path "HKCU: \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Windows" - meno "LegacyDefaultPrinterMode" -Value 1 -Force

Na nastavenie predvolenej tlačiarne použite nasledujúce príkazy:

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

Odstránenie tlačiarne pomocou PowerShell

Ak chcete odstrániť tlačiareň, musíte spustiť nasledujúci príkaz PowerShell:

Remove-Printer -Name "hp2050_Office1_Buh"

Konkrétny ovládač môžete odstrániť pomocou rutiny Remove-PrinterDriver:

Remove-PrinterDriver - Názov "HP Universal Printing PCL 6"