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) alipnputil.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"
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
Č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"