В предишна статия разгледахме старите училища vbscripts, които могат да се използват за управление на принтери и печат във всички версии на Windows, като се започне от Windows XP. Днес ще разгледаме типичните команди за създаване, премахване на принтери, портове и драйвери за печат в Windows с помощта на PowerShell. Тези методи за управление на принтера могат да се използват в съвременни операционни системи - Windows 10, 8.1 и Windows Server 2012 R2 / 2016/2019.
Съдържание:
- Модул PowerShell: Управление на печата
- Инсталирайте драйвера за печат в хранилището на драйвера
- Инсталирайте нов принтер с помощта на PowerShell
- Списък на принтери на сървър за печат с помощта на PowerShell
- Свържете мрежов принтер от PowerShell
- Премахване на принтер с помощта на PowerShell
Модул PowerShell: Управление на печата
С пускането на Windows 8.1 и Windows Server 2012 R2, Microsoft пусна нова версия PowerShell 4.0 (част от Windows Management Framework 4.0), което значително разшири списъка с командлети за управление на сървър за печат, базиран на Windows. Пълен списък на командлети за управление на принтери, драйвери и опашки за печат, налични в модула PrintManagement на Windows 10 (PoSh v5), може да бъде показан с командата:
Get-Command -Module Print Management
Модулът PrintManagement осигурява 22 командлета PowerShell за управление на принтери, драйвери, портове за печат и опашки:
- Add-Printer - добавете (инсталирайте) нов принтер;
- Add-PrinterDriver - инсталирайте нов драйвер за печат;
- Add-PrinterPort - създаване на порт за печат;
- Get-PrintConfiguration - настройки за печат на принтера;
- Get-Printer - показване на списък с принтери, инсталирани на компютъра;
- Get-PrinterDriver - списък на инсталираните драйвери за печат;
- Get-PrinterPort - показва списък на пристанищата за печат;
- Get-PrinterProperty - показване на свойствата на принтера;
- Get-PrintJob - получите списък с задания за печат на принтера;
- Read-PrinterNfcTag - получите информация за принтера от NFC таг;
- Remove-Printer - премахнете принтера;
- Remove-PrinterDriver - премахнете драйвера за принтера;
- Remove-PrinterPort - премахнете принтерния порт;
- Remove-PrintJob - премахнете заданието за печат на принтера;
- Rename-Printer - преименувайте принтера;
- Restart-PrintJob - рестартирайте заданието за печат;
- Resume-PrintJob - стартира пауза
- Set-PrintConfiguration - настройка на конфигурацията на принтера;
- Set-Printer - актуализирайте конфигурацията на принтера;
- Set-PrinterProperty - промяна на свойствата на принтера;
- Suspend-PrintJob - пауза на заданието за печат;
- Write-PrinterNfcTag - запишете информация в NFC тага.
Подробна информация за синтаксиса за конкретна команда може да бъде получена, както следва:
Получете помощ - Подробно
Примери за използване на команди:
Получете помощ - примери
Нека разгледаме някои примери за типични сценарии за управление на принтера в Windows 10 от PowerShell..
Инсталирайте драйвера за печат в хранилището на драйвера
За да изброите драйверите за печат, които са инсталирани в хранилището на драйвера за Windows:
Get-PrinterDriver
Ние настроихме нов драйвер за печат в системата, например, HP Universal Printing PCL 6. Според документацията командата PowerShell за добавяне на драйвер трябва да е така:
Add-PrinterDriver -Име "HP Universal Printing PCL 6" -InfPath "C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf"
Въпреки това, когато се опитате да инсталирате драйвера по този начин, се появява грешка:
Add-PrinterDriver: Един или повече определени параметри за тази операция имат невалидна стойност. На ред: 1 char: 1 + Add-PrinterDriver -Име "HP Universal Printing PCL 6" -InfPath "C: \ Di ... + ~~~~~~~~~~~~~~~~~~~ ~~~~ + CategoryInfo: InvalidArgument: (MSFT_PrinterDriver: ROOT / StandardCimv2 / MSFT_PrinterDriver) [Add-PrinterDriver], CimException + FullyQualifiedErrorId: HRESULT 0x80070057, Add-PrinterDriver
Оказва се, че драйверът от inf файла може да се добави само ако той вече е в хранилището на DriverStore драйвери (повече информация за хранилището може да намерите тук). Оказва се, че с помощта на командата Add-PrinterDriver не можете да инсталирате драйвер, който не е в хранилището на системния драйвер. За да инсталирате драйвера в DriverStore, можете да използвате:
- vbs скрипт от предишната статия;
- полезност pnputil.Търсейки. Форматът е:
pnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf
(инсталирайте конкретен драйвер за принтера) илиpnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ *. inf
(инсталирайте всички драйвери, намерени във inf файлове на посочената директория); - Командлет Add-WindowsDriver за интегриране на драйвери в офлайн изображение на Windows.
След като добавите драйвера на принтера в хранилището, трябва да го добавите към списъка на наличните сървъри за печат.
Add-PrinterDriver -Име "HP Universal Printing PCL 6"
Инсталирайте нов принтер с помощта на PowerShell
Създайте ip порт за печат на мрежов принтер (тук можете да зададете както IP адреса на мрежовия принтер, така и името на отдалечения сървър за печат):
Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26"
Преди да добавите порт, можете да проверите дали съществува:
$ portName = "IP_192.168.10.26"
$ checkPortExists = Get-Printerport -Name $ portname -ErrorAction SilentlyContinue
ако (-не $ checkPortExists)
Add-PrinterPort -name $ portName -PrinterHostAddress "192.168.10.26"
Използвайки следната команда, ще създадем нов принтер в системата и ще я публикуваме (ще я споделим):Add-Printer -Name hp2050_Office1_Buh -DriverName "HP Deskjet 2050 J510 серия драйвери за клас" -PortName IP_192.168.10.26 -Поделен -ShareName "hp2050_1_BUh" -Публикуван
За да преименувате принтера, просто изпълнете командата:
Преименуване-принтер -име "hp2050_Office1_Buh" -NewName "hp2050_Sallar"
След приключване на тези команди, в системата ще се появи нов споделен принтер като hp2050_Office1_Buh.
Списък на принтери на сървър за печат с помощта на PowerShell
Ще изброим пълния списък с принтери, инсталирани на този компютър:
Get-Printer
Както можете да видите, командата показва името на принтера, типа (локален или мрежов), драйвер, порт за печат, дали принтерът е споделен и принтерът е публикуван в AD.
Повечето командлети на модула PrintManagement могат да се използват за преглед на състоянието и управление на принтери, драйвери и опашки за печат на отдалечени компютри. Името на отдалечения компютър или сървър е посочено като аргумент на параметъра -име_на_компютъра.
Използвайки PowerShell, можете да получите информация за инсталирани принтери на отдалечен компютър (сървър за печат), за да направите това, изпълнете командата:
Get-Printer -ComputerName msk-prnt1 | Име на формат-списък, име на водач
За да изброите само споделени принтери, използвайте командата:
Get-Printer -ComputerName msk-prnt1 | където споделено -eq $ true | fl Име
Свържете мрежов принтер от PowerShell
За да свържете принтера от сървъра за печат, използвайте командата:
Add-Printer -ConnectionName \\ msk-prnt1 \ HPCL3020
Windows 10 използва последния принтер за отпечатване като принтер по подразбиране, ако искате да използвате фиксирания принтер по подразбиране, изпълнете командата:
Set-ItemProperty -Path "HKCU: \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Windows" -Name "LegacyDefaultPrinterMode" -Value 1 -Force
Използвайте следните команди, за да зададете принтера по подразбиране:
$ wsnObj = New-Object -COM WScript.Network
$ wsnObj.SetDefaultPrinter (% PrinterName%)
Премахване на принтер с помощта на PowerShell
За да премахнете принтера, трябва да изпълните следната команда PowerShell:
Премахване-Принтер -Име „hp2050_Office1_Buh“
Можете да премахнете конкретен драйвер с командлета Remove-PrinterDriver:
Remove-PrinterDriver -Име "HP Universal Printing PCL 6"