PowerShell mengelola printer dan driver cetak di Windows 10 / Server 2016

Pada artikel sebelumnya, kami melihat skrip-skrip lama yang dapat digunakan untuk mengelola printer dan mencetak di semua versi Windows, dimulai dengan Windows XP. Hari ini kita akan melihat perintah khas untuk membuat, menghapus printer, port, dan driver cetak di Windows menggunakan PowerShell. Metode manajemen printer ini dapat digunakan dalam sistem operasi modern - Windows 10, 8.1 dan Windows Server 2012 R2 / 2016/2019.


Konten:

  • Modul PowerShell: PrintManagement
  • Instal driver cetak di repositori driver
  • Instal printer baru menggunakan PowerShell
  • Daftar printer pada server cetak menggunakan PowerShell
  • Hubungkan printer jaringan dari PowerShell
  • Menghapus printer menggunakan PowerShell

Modul PowerShell: PrintManagement

Dengan rilis Windows 8.1 dan Windows Server 2012 R2, Microsoft merilis versi baru Powerhell 4.0 (bagian dari Windows Management Framework 4.0), yang telah secara signifikan memperluas daftar cmdlet untuk mengelola server cetak berbasis Windows. Daftar cmdlet lengkap untuk mengelola printer, driver, dan antrian cetak yang tersedia dalam modul PrintManagement pada Windows 10 (PoSh v5) dapat ditampilkan dengan perintah:
Get-Command -Module PrintManagement

Modul PrintManagement menyediakan 22 cm Powerlet PowerShell untuk mengelola printer, driver, port cetak, dan antrian:

  • Add-Printer - tambah (instal) printer baru;
  • Add-PrinterDriver - instal driver cetak baru;
  • Add-PrinterPort - membuat port cetak;
  • Get-PrintConfiguration - menampilkan pengaturan cetak printer;
  • Get-Printer - menampilkan daftar printer yang diinstal pada komputer;
  • Get-PrinterDriver - daftar driver cetak yang diinstal;
  • Get-PrinterPort - menampilkan daftar port cetak;
  • Get-PrinterProperty - tampilkan properti printer;
  • Get-PrintJob - dapatkan daftar pekerjaan cetak printer;
  • Read-PrinterNfcTag - dapatkan informasi printer dari tag NFC;
  • Remove-Printer - hapus printer;
  • Remove-PrinterDriver - hapus driver printer;
  • Remove-PrinterPort - lepaskan port printer;
  • Remove-PrintJob - menghapus pekerjaan cetak pada printer;
  • Rename-Printer - ganti nama printer;
  • Restart-PrintJob - restart pekerjaan cetak;
  • Resume-PrintJob - memulai pekerjaan yang dihentikan sementara
  • Set-PrintConfiguration - mengatur konfigurasi printer;
  • Set-Printer - memperbarui konfigurasi printer;
  • Set-PrinterProperty - mengubah properti printer;
  • Suspend-PrintJob - menghentikan sementara pekerjaan cetak;
  • Write-PrinterNfcTag - tulis informasi ke tag NFC.

Informasi sintaksis terperinci untuk perintah tertentu dapat diperoleh sebagai berikut:

Dapatkan-Bantuan -Detailed

Contoh menggunakan perintah:

Dapatkan-Bantuan -Contoh

Mari kita lihat beberapa contoh skenario manajemen printer pada Windows 10 dari PowerShell..

Instal driver cetak di repositori driver

Untuk daftar driver cetak yang diinstal di repositori driver Windows:

Dapatkan-PrinterDriver

Kami menyiapkan driver cetak baru dalam sistem, misalnya, HP Universal Printing PCL 6. Menurut dokumentasi, perintah PowerShell untuk menambahkan driver harus seperti ini:

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

Namun, ketika Anda mencoba menginstal driver dengan cara ini, kesalahan muncul:

Add-PrinterDriver: Satu atau lebih parameter yang ditentukan untuk operasi ini memiliki nilai yang tidak valid. Pada baris: 1 karakter: 1 + Add-PrinterDriver -Nama "HP Universal Printing PCL 6" -InfPath "C: \ Di ... + ~~~~~~~~~~~~~~~~~~~~ ~~~~ + CategoryInfo: InvalidArgument: (MSFT_PrinterDriver: ROOT / StandardCimv2 / MSFT_PrinterDriver) [Add-PrinterDriver], CimException + FullyQualifiedErrorId: HRESULT 0x80070057, Add-PrinterDriver

Ternyata driver dari file inf hanya dapat ditambahkan jika sudah ada dalam repositori driver DriverStore (informasi lebih lanjut tentang repositori dapat ditemukan di sini). Ternyata menggunakan perintah Add-PrinterDriver Anda tidak dapat menginstal driver yang tidak ada dalam repositori driver sistem. Untuk menginstal driver di DriverStore, Anda dapat menggunakan:

  • skrip vbs dari artikel sebelumnya;
  • Utilitas pnputil.exe. Formatnya adalah: pnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ hpcu118u.inf (instal driver printer tertentu) atau pnputil.exe -i -a C: \ Distr \ HP-pcl6-x64 \ *. inf (instal semua driver yang ditemukan dalam file inf dari direktori yang ditentukan);
  • Tambahkan-WindowsDriver cmdlet untuk mengintegrasikan driver ke gambar Windows offline.

Setelah menambahkan driver printer ke repositori, Anda perlu menambahkannya ke daftar server cetak yang tersedia.

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

Kiat. Bagaimana saya tahu apa yang harus ditentukan dalam bidang dengan nama driver cetak saat menginstal driver melalui PowerShell? Nama driver cetak yang ditentukan harus sama persis dengan nama sistem internal, jika tidak kesalahan akan muncul selama instalasi. Anda dapat mengetahui nama driver yang benar menggunakan perintah dapatkan-printerdriver pada sistem di mana driver ini sudah diinstal, atau dengan secara manual memeriksa file driver .inf.

Instal printer baru menggunakan PowerShell

Buat port ip untuk mencetak pada printer jaringan (di sini Anda dapat menentukan alamat IP printer jaringan dan nama server cetak jarak jauh):

Add-PrinterPort -Nama "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26" 
Sebelum menambahkan port, Anda dapat memeriksa apakah ada:

$ portName = "IP_192.168.10.26"
$ checkPortExists = Dapatkan-Printerport -Name $ portname -ErrorAction SilentlyContinue
if (-tidak $ checkPortExists)
Tambah-PrinterPort -name $ portName -PrinterHostAddress "192.168.10.26"

Dengan menggunakan perintah berikut, kami akan membuat printer baru di sistem dan menerbitkannya (kami akan membagikannya):
Add-Printer -Nama hp2050_Office1_Buh -DriverName "Pengemudi Kelas HP Deskjet 2050 J510 series" -PortName IP_192.168.10.26 -Berbagi -Berbagi Nama "hp2050_1_BUh" -Diterbitkan

Catatan. Perhatikan bahwa untuk melakukan operasi yang sama jika menggunakan skrip vbs (Mencetak skrip Admin), Anda harus menjalankan dua perintah berbeda.
Untuk mengganti nama printer, jalankan perintah:

Ganti nama-Printer -Nama "hp2050_Office1_Buh" -NewName "hp2050_Salary"

Setelah perintah ini selesai, printer bersama baru akan muncul di sistem sebagai hp2050_Office1_Buh.

Daftar printer pada server cetak menggunakan PowerShell

Kami akan mencantumkan daftar lengkap printer yang terpasang di komputer ini:

Dapatkan printer

Seperti yang dapat Anda lihat, perintah tersebut menunjukkan nama, jenis printer (lokal atau jaringan), driver, port cetak, apakah printer tersebut digunakan bersama dan printer diterbitkan dalam AD.

Sebagian besar cmdlet modul PrintManagement dapat digunakan untuk melihat status dan mengelola printer, driver, dan antrian cetak pada komputer jarak jauh. Nama komputer atau server jarak jauh ditentukan sebagai argumen untuk parameter -Nama pengguna.

Menggunakan PowerShell, Anda bisa mendapatkan informasi tentang printer yang diinstal pada komputer jarak jauh (server cetak), untuk melakukan ini, jalankan perintah:

Get-Printer -ComputerName msk-prnt1 | Nama Format-Daftar, DriverName

Untuk mencantumkan hanya printer yang dibagikan, gunakan perintah:

Get-Printer -ComputerName msk-prnt1 | di mana Dibagikan -eq $ true | Nama fl

Hubungkan printer jaringan dari PowerShell

Untuk menghubungkan printer dari server cetak, gunakan perintah:

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

Windows 10 menggunakan printer terakhir yang akan dicetak sebagai printer default, jika Anda ingin menggunakan printer tetap secara default, jalankan perintah:

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

Gunakan perintah berikut untuk mengatur printer default:

$ wsnObj = Objek Baru -COM WScript.Network
$ wsnObj.SetDefaultPrinter (% PrinterName%)

Menghapus printer menggunakan PowerShell

Untuk menghapus printer, Anda harus menjalankan perintah PowerShell berikut:

Hapus-Printer -Nama "hp2050_Office1_Buh"

Anda dapat menghapus driver tertentu menggunakan cmdlet Remove-PrinterDriver:

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