W poprzednim artykule przyjrzeliśmy się oldskulowym skryptom vbscript, których można używać do zarządzania drukarkami i drukowaniem we wszystkich wersjach systemu Windows, począwszy od systemu Windows XP. Dzisiaj przyjrzymy się typowym poleceniom do tworzenia, usuwania drukarek, portów i sterowników drukarek w systemie Windows za pomocą programu PowerShell. Te metody zarządzania drukarką mogą być stosowane w nowoczesnych systemach operacyjnych - Windows 10, 8.1 i Windows Server 2012 R2 / 2016/2019.
Treść
- Moduł PowerShell: PrintManagement
- Zainstaluj sterownik druku w repozytorium sterowników
- Zainstaluj nową drukarkę za pomocą programu PowerShell
- Wyświetl listę drukarek na serwerze wydruku za pomocą programu PowerShell
- Podłącz drukarkę sieciową z PowerShell
- Usuwanie drukarki za pomocą PowerShell
Moduł PowerShell: PrintManagement
Wraz z wydaniem systemu Windows 8.1 i Windows Server 2012 R2 firma Microsoft wydała nową wersję Powerhell 4.0 (część Windows Management Framework 4.0), która znacznie rozszerzyła listę poleceń cmdlet do zarządzania serwerem wydruku opartym na systemie Windows. Pełną listę poleceń cmdlet do zarządzania drukarkami, sterownikami i kolejkami wydruku dostępnymi w module PrintManagement w systemie Windows 10 (PoSh v5) można wyświetlić za pomocą polecenia:
Get-Command -Moduł PrintManagement
Moduł PrintManagement zapewnia 22 poleceń cmdlet programu PowerShell do zarządzania drukarkami, sterownikami, portami wydruku i kolejkami:
- Dodaj drukarkę - dodaj (zainstaluj) nową drukarkę;
- Add-PrinterDriver - zainstaluj nowy sterownik druku;
- Add-PrinterPort - utwórz port drukowania;
- Get-PrintConfiguration - wyświetla ustawienia drukowania drukarki;
- Pobierz drukarkę - wyświetla listę drukarek zainstalowanych na komputerze;
- Get-PrinterDriver - wyświetl listę zainstalowanych sterowników druku;
- Get-PrinterPort - wyświetla listę portów drukowania;
- Get-PrinterProperty - pokazuje właściwości drukarki;
- Get-PrintJob - uzyskaj listę zadań drukowania drukarki;
- Read-PrinterNfcTag - pobierz informacje o drukarce ze znacznika NFC;
- Usuń drukarkę - usuń drukarkę;
- Remove-PrinterDriver - usuń sterownik drukarki;
- Remove-PrinterPort - usuń port drukarki;
- Remove-PrintJob - usuń zadanie drukowania z drukarki;
- Zmień nazwę drukarki - zmień nazwę drukarki;
- Restart-PrintJob - ponownie uruchom zadanie drukowania;
- Resume-PrintJob - rozpocznij wstrzymane zadanie
- Set-PrintConfiguration - konfiguracja konfiguracji drukarki;
- Ustaw drukarkę - zaktualizuj konfigurację drukarki;
- Set-PrinterProperty - zmiana właściwości drukarki;
- Suspend-PrintJob - wstrzymaj zadanie drukowania;
- Write-PrinterNfcTag - zapisz informacje do znacznika NFC.
Szczegółowe informacje o składni dla konkretnego polecenia można uzyskać w następujący sposób:
Uzyskaj-Pomoc-Szczegółowo
Przykłady używania poleceń:
Uzyskaj pomoc-Przykłady
Spójrzmy na kilka przykładów typowych scenariuszy zarządzania drukarką w Windows 10 z PowerShell..
Zainstaluj sterownik druku w repozytorium sterowników
Aby wyświetlić listę sterowników druku zainstalowanych w repozytorium sterowników systemu Windows:
Get-PrinterDriver
W systemie skonfigurowaliśmy nowy sterownik druku, na przykład HP Universal Printing PCL 6. Zgodnie z dokumentacją polecenie programu PowerShell, aby dodać sterownik, powinno wyglądać tak:
Add-PrinterDriver -Name "HP Universal Printing PCL 6" -InfPath "C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf"
Jednak podczas próby zainstalowania sterownika w ten sposób pojawia się błąd:
Add-PrinterDriver: Jeden lub więcej określonych parametrów dla tej operacji ma niepoprawną wartość. W wierszu: 1 znak: 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
Okazuje się, że sterownik z pliku inf można dodać tylko wtedy, gdy znajduje się już w repozytorium sterowników DriverStore (więcej informacji na temat repozytorium można znaleźć tutaj). Okazuje się, że za pomocą polecenia Add-PrinterDriver nie można zainstalować sterownika, który nie znajduje się w repozytorium sterowników systemu. Aby zainstalować sterownik w DriverStore, możesz użyć:
- skrypt vbs z poprzedniego artykułu;
- Utility pnputil.exe. Format to:
pnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf
(zainstaluj określony sterownik drukarki) lubpnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ *. inf
(zainstaluj wszystkie sterowniki znalezione w plikach inf określonego katalogu); - Dodaj polecenie cmdlet WindowsDriver, aby zintegrować sterowniki z obrazem systemu Windows offline.
Po dodaniu sterownika drukarki do pamięci należy dodać go do listy dostępnych serwerów wydruku.
Add-PrinterDriver -Name „HP Universal Printing PCL 6”
Zainstaluj nową drukarkę za pomocą programu PowerShell
Utwórz port ip do drukowania na drukarce sieciowej (tutaj możesz podać zarówno adres IP drukarki sieciowej, jak i nazwę zdalnego serwera wydruku):
Dodaj-PrinterPort -Nazwa „IP_192.168.10.26” -PrinterHostAddress „192.168.10.26”
Przed dodaniem portu możesz sprawdzić, czy istnieje:
$ 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”
Za pomocą następującego polecenia utworzymy nową drukarkę w systemie i opublikujemy ją (udostępnimy):Dodaj drukarkę -Name hp2050_Office1_Buh -DriverName „Sterownik klasy HP Deskjet 2050 J510 series” -PortName IP_192.168.10.26-Udostępniony -ShareName „hp2050_1_BUh” -Publikowane
Aby zmienić nazwę drukarki, wystarczy uruchomić polecenie:
Zmień nazwę drukarki - nazwa „hp2050_Office1_Buh” -Nowa nazwa „hp2050_Salary”
Po wykonaniu tych poleceń w systemie pojawi się nowa udostępniona drukarka jako hp2050_Office1_Buh.
Wyświetl listę drukarek na serwerze wydruku za pomocą programu PowerShell
Podamy pełną listę drukarek zainstalowanych na tym komputerze:
Pobierz drukarkę
Jak widać, polecenie pokazuje nazwę drukarki, typ (lokalny lub sieciowy), sterownik, port wydruku, czy drukarka jest współużytkowana, a drukarka opublikowana w AD.
Większość poleceń cmdlet modułu PrintManagement można wykorzystać do wyświetlania stanu oraz zarządzania drukarkami, sterownikami i kolejkami wydruku na komputerach zdalnych. Nazwa zdalnego komputera lub serwera jest określona jako argument parametru -Nazwa komputera.
Za pomocą programu PowerShell można uzyskać informacje o zainstalowanych drukarkach na komputerze zdalnym (serwerze wydruku), w tym celu uruchom polecenie:
Get-Printer -ComputerName msk-prnt1 | Nazwa listy formatów, nazwa sterownika
Aby wyświetlić listę tylko drukarek udostępnionych, użyj polecenia:
Get-Printer -ComputerName msk-prnt1 | gdzie Shared -eq $ true | nazwa fl
Podłącz drukarkę sieciową z PowerShell
Aby podłączyć drukarkę z serwera wydruku, użyj polecenia:
Dodaj drukarkę-nazwa połączenia \\ msk-prnt1 \ HPCL3020
Windows 10 używa ostatniej drukarki, która zostanie wydrukowana jako drukarka domyślna, jeśli chcesz domyślnie używać drukarki stałej, uruchom polecenie:
Set-ItemProperty -Path "HKCU: \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Windows" -Name "LegacyDefaultPrinterMode" -Wartość 1 -Force
Użyj następujących poleceń, aby ustawić domyślną drukarkę:
$ wsnObj = Nowy obiekt-COM WScript.Network
$ wsnObj.SetDefaultPrinter (% PrinterName%)
Usuwanie drukarki za pomocą PowerShell
Aby usunąć drukarkę, musisz uruchomić następujące polecenie PowerShell:
Remove-Printer -Name "hp2050_Office1_Buh"
Możesz usunąć określony sterownik za pomocą polecenia cmdlet Remove-PrinterDriver:
Remove-PrinterDriver -Name „HP Universal Printing PCL 6”