PowerShell upravljanje tiskalnikov in gonilnikov tiskalnika v sistemu Windows 10 / Server 2016

V prejšnjem članku smo si ogledali vbscripte stare šole, ki jih je mogoče uporabiti za upravljanje tiskalnikov in tiskanje v vseh različicah sistema Windows, začenši z Windows XP. Danes si bomo ogledali značilne ukaze za ustvarjanje, odstranjevanje tiskalnikov, vrat in gonilnikov za tiskanje v operacijskem sistemu Windows z uporabo PowerShell-a. Te načine upravljanja tiskalnika je mogoče uporabiti v sodobnih operacijskih sistemih - Windows 10, 8.1 in Windows Server 2012 R2 / 2016/2019.


Vsebina:

  • PowerShell modul: PrintManagement
  • Namestite gonilnik tiskalnika v skladišče gonilnikov
  • Namestite nov tiskalnik s programom PowerShell
  • Seznam tiskalnikov na tiskalnem strežniku s programom PowerShell
  • Priključite omrežni tiskalnik iz PowerShell-a
  • Odstranjevanje tiskalnika s programom PowerShell

PowerShell modul: PrintManagement

Microsoft je s izdajo sistemov Windows 8.1 in Windows Server 2012 R2 izdal novo različico Powerhell 4.0 (del sistema Windows Management Framework 4.0), ki je znatno razširil seznam cmdletov za upravljanje tiskalniškega strežnika z Windows. Popoln seznam cmdlet za upravljanje tiskalnikov, gonilnikov in čakalnih vrst, ki so na voljo v modulu PrintManagement v sistemu Windows 10 (PoSh v5), se lahko prikaže z ukazom:
Get-Command -Module PrintManagement

Modul PrintManagement ponuja 22 ukaznih polj PowerShell za upravljanje tiskalnikov, gonilnikov, tiskalnih vrat in čakalnih vrst:

  • Add-Printer - dodajte (namestite) nov tiskalnik;
  • Add-PrinterDriver - namestite nov gonilnik tiskalnika;
  • Add-PrinterPort - ustvarite tiskalniška vrata;
  • Get-PrintConfiguration - prikažite nastavitve tiskanja tiskalnika;
  • Get-Printer - prikaže seznam tiskalnikov, nameščenih v računalniku;
  • Get-PrinterDriver - seznam nameščenih gonilnikov tiskalnika;
  • Get-PrinterPort - prikaže seznam vrat za tiskanje;
  • Get-PrinterProperty - pokaži lastnosti tiskalnika;
  • Get-PrintJob - dobite seznam tiskalnih opravil tiskalnika;
  • Read-PrinterNfcTag - pridobite informacije o tiskalniku iz oznake NFC;
  • Odstrani-tiskalnik - odstranite tiskalnik;
  • Remove-PrinterDriver - odstranite gonilnik tiskalnika;
  • Remove-PrinterPort - odstranite vrata tiskalnika;
  • Remove-PrintJob - odstranite tiskalni posel na tiskalniku;
  • Preimenovanje-tiskalnik - preimenujte tiskalnik;
  • Restart-PrintJob - znova zaženite tiskalno opravilo;
  • Resume-PrintJob - zaženite zaustavljeno opravilo
  • Set-PrintConfiguration - nastavitev konfiguracije tiskalnika;
  • Set-Printer - posodobite konfiguracijo tiskalnika;
  • Set-PrinterProperty - spremenite lastnosti tiskalnika;
  • Suspend-PrintJob - zaustavi tiskalno opravilo;
  • Write-PrinterNfcTag - napišite informacije v oznako NFC.

Podrobne informacije o skladnji za določen ukaz lahko dobite na naslednji način:

Pridobite pomoč-podrobno

Primeri uporabe ukazov:

Pridobite pomoč-primeri

Oglejmo si nekaj primerov značilnih scenarijev za upravljanje tiskalnika v sistemu Windows 10 iz PowerShell-a..

Namestite gonilnik tiskalnika v skladišče gonilnikov

Če želite našteti gonilnike tiskalnika, ki so nameščeni v skladišču gonilnikov Windows:

Get-PrinterDriver

V sistemu smo postavili nov gonilnik tiskalnika, na primer HP Universal Printing PCL 6. Glede na dokumentacijo bi moral biti ukaz PowerShell za dodajanje gonilnika tak:

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

Ko pa poskusite gonilnik namestiti na ta način, se prikaže napaka:

Add-PrinterDriver: En ali več podanih parametrov za to operacijo ima neveljavno vrednost. Na vrsti: 1 znak: 1 + Add-PrinterDriver -Ime "HP Universal Printing PCL 6" -InfPath "C: \ Di ... + ~~~~~~~~~~~~~~~~~~~ ~~~~ + CategoryInfo: InvalidArgument: (MSFT_PrinterDriver: ROOT / StandardCimv2 / MSFT_PrinterDriver) [Add-PrinterDriver], CimException + FullyQualifiedErrorId: HRESULT 0x80070057, Add-PrinterDriver

Izkaže se, da lahko gonilnik iz inf datoteke dodate le, če je že v shrambi gonilnikov DriverStore (več informacij o skladišču najdete tukaj). Pokaže se, da z ukazom Add-PrinterDriver ne morete namestiti gonilnika, ki ni v skladišču sistemskega gonilnika. Za namestitev gonilnika v DriverStore lahko uporabite:

  • skript vbs iz prejšnjega članka;
  • Uporabnost pnputil.exe. Oblika je: pnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf (namestite poseben gonilnik tiskalnika) ali pnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ *. inf (namestite vse gonilnike, ki jih najdete v inf datotekh določenega imenika);
  • Cmdlet Add-WindowsDriver za integracijo gonilnikov v zunanjo sliko Windows.

Ko dodate gonilnik tiskalnika v skladišče, ga morate dodati na seznam razpoložljivih tiskalniških strežnikov.

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

Namig. Kako vem, kaj določiti v polju z imenom gonilnika tiskalnika, ko namestite gonilnik prek PowerShell? Navedeno ime gonilnika tiskalnika se mora natančno ujemati z njegovim notranjim imenom sistema, sicer se bo med namestitvijo pojavila napaka. Pravilno ime gonilnika lahko ugotovite s pomočjo ukaza get-printerdriver v sistemu, v katerem je ta gonilnik že nameščen, ali z ročnim pregledovanjem .inf datoteke gonilnika.

Namestite nov tiskalnik s programom PowerShell

Ustvari vrata ip za tiskanje na omrežnem tiskalniku (tukaj lahko določite IP naslov omrežnega tiskalnika in ime oddaljenega tiskalnega strežnika):

Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26" 
Preden dodate vrata, lahko preverite, ali obstaja:

$ 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"

Z naslednjim ukazom bomo v sistemu ustvarili nov tiskalnik in ga objavili (ga bomo delili):
Add-Printer -Name hp2050_Office1_Buh -DriverName "HP Deskjet 2050 J510 series Driver" -PortName IP_192.168.10.26 -Shared -ShareName "hp2050_1_BUh" -Pobjavljeno

Opomba. Upoštevajte, da boste morali za izvajanje iste operacije v primeru uporabe skriptov vbs (Printing Admin skript), zagnati dva različna ukaza.
Če želite preimenovati tiskalnik, zaženite ukaz:

Preimenovanje-tiskalnik -naime "hp2050_Office1_Buh" -NewName "hp2050_Slary"

Po zaključku teh ukazov se bo v sistemu pojavil nov tiskalnik v skupni rabi kot hp2050_Office1_Buh.

Seznam tiskalnikov na tiskalnem strežniku s programom PowerShell

Navedli bomo celoten seznam tiskalnikov, nameščenih v tem računalniku:

Get-tiskalnik

Kot lahko vidite, ukaz prikaže ime, vrsto tiskalnika (lokalno ali omrežje), gonilnik, tiskalniška vrata, ali je tiskalnik v skupni rabi in je tiskalnik objavljen v AD.

Večino cmdlet modulov PrintManagement lahko uporabite za ogled stanja in upravljanje tiskalnikov, gonilnikov in čakalnih vrst za tiskanje na oddaljenih računalnikih. Kot argument parametra je določeno ime oddaljenega računalnika ali strežnika -Ime računalnika.

S programom PowerShell lahko dobite informacije o nameščenih tiskalnikih na oddaljenem računalniku (tiskalni strežnik), če želite to narediti, zaženite ukaz:

Get-Printer -ComputerName msk-prnt1 | Ime formata-seznama, ime gonilnika

Če želite prikazati samo tiskalnike v skupni rabi, uporabite ukaz:

Get-Printer -ComputerName msk-prnt1 | kjer je v skupni rabi -eq $ true | fl Ime

Priključite omrežni tiskalnik iz PowerShell-a

Če želite tiskalnik povezati s tiskalnim strežnikom, uporabite ukaz:

Add-Printer -ConnectionName \\ msk-prnt1 \ HPCL3020

Windows 10 uporablja zadnji tiskalnik za tiskanje kot privzeti tiskalnik, če želite privzeto uporabljati fiksni tiskalnik, zaženite ukaz:

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

Za nastavitev privzetega tiskalnika uporabite naslednje ukaze:

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

Odstranjevanje tiskalnika s programom PowerShell

Če želite odstraniti tiskalnik, morate zagnati naslednji ukaz PowerShell:

Odstrani-tiskalnik -Ime "hp2050_Office1_Buh"

Določen gonilnik lahko odstranite z ukaznim ukazom Remove-PrinterDriver:

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