Computer >> Máy Tính >  >> Hệ thống >> máy chủ Windows

Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016

Trong phần trước, chúng ta đã xem xét các tập lệnh VBS cũ có thể được sử dụng để quản lý máy in và hoạt động in trong tất cả các phiên bản Windows, bắt đầu từ Windows XP. Hôm nay chúng ta sẽ xem xét các lệnh điển hình để cài đặt, quản lý và gỡ bỏ máy in, cổng in, trình điều khiển và hàng đợi bằng PowerShell. Những cách quản lý máy in này từ PowerShell CLI có thể được sử dụng trong các hệ điều hành hiện đại - Windows 10 / 8.1 và Windows Server 2019/2016/2012 R2.

Mô-đun PowerShell:PrintManagement

Cùng với việc phát hành Windows 8.1 và Windows Server 2012 R2, Microsoft đã phát hành phiên bản PowerShell 4.0 mới (một phần của Windows Management Framework 4.0), mở rộng đáng kể danh sách các lệnh ghép ngắn quản lý máy chủ in dựa trên Windows. Bạn có thể nhận danh sách đầy đủ các lệnh ghép ngắn quản lý hàng đợi in, trình điều khiển và in có sẵn trong mô-đun PrintManagement trên Windows 10 (PowerShell v5) bằng lệnh sau:

Get-Command –Module PrintManagement

Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016 Mô-đun PrintManagement bao gồm 22 lệnh ghép ngắn PowerShell để quản lý máy in, trình điều khiển, cổng in và hàng đợi:

  • Máy in bổ sung - thêm (cài đặt) máy in mới;
  • Add-PrinterDriver - cài đặt trình điều khiển in mới;
  • Add-PrinterPort - tạo cổng in cục bộ;
  • Get-PrintConfiguration - hiển thị cấu hình máy in;
  • Nhận máy in - hiển thị danh sách các máy in được cài đặt trên máy tính;
  • Get-PrinterDriver - hiển thị danh sách các trình điều khiển đã cài đặt;
  • Get-PrinterPort - hiển thị danh sách các cổng máy in;
  • Get-PrinterProperty - hiển thị các thuộc tính của máy in;
  • Get-PrintJob - nhận danh sách các lệnh in của máy in;
  • Read-PrinterNfcTag - lấy thông tin máy in từ thẻ NFC;
  • Xóa máy in - tháo máy in;
  • Remove-PrinterDriver - gỡ bỏ trình điều khiển máy in;
  • Remove-PrinterPort - tháo cổng máy in;
  • Remove-PrintJob - xóa lệnh in trên máy in;
  • Đổi tên-Máy in - đổi tên máy in;
  • Khởi động lại-PrintJob - khởi động lại công việc in;
  • Resume-PrintJob - tiếp tục lệnh in bị tạm dừng;
  • Set-PrintConfiguration - đặt cấu hình máy in;
  • Đặt-Máy in - cập nhật cấu hình máy in;
  • Set-PrinterProperty - thay đổi thuộc tính máy in;
  • Tạm ngưng-PrintJob - tạm dừng (tạm dừng) công việc in;
  • Write-PrinterNfcTag - ghi thông tin vào thẻ NFC.

Để biết thông tin chi tiết về cú pháp của bất kỳ lệnh nào, hãy sử dụng lệnh sau:

Get-Help <cmdlet_name> -Detailed

Ví dụ về cách sử dụng lệnh:

Get-Help < cmdlet_name> -Examples

Hãy xem một vài ví dụ về các tác vụ quản lý máy in điển hình bằng PowerShell trong Windows 10.

Thêm Trình điều khiển Máy in vào Kho Trình điều khiển

Để liệt kê các trình điều khiển in được cài đặt trong Windows DriverStore:

Get-PrinterDriver

Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016

Sau đó, cài đặt trình điều khiển máy in mới vào hệ thống. Ví dụ:bạn muốn cài đặt trình điều khiển in phổ biến “HP Universal Printing PCL 6”. Theo tài liệu, lệnh PowerShell để thêm trình điều khiển in sẽ như sau:

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

Tuy nhiên, khi cố gắng cài đặt trình điều khiển theo cách này, thông báo lỗi sau sẽ xuất hiện:

Add-PrinterDriver:Một hoặc nhiều tham số được chỉ định cho thao tác này có giá trị không hợp lệ. Tại dòng:1 char:1 + Add-PrinterDriver -Tên “HP Universal Printing PCL 6” -InfPath “C:\ Di… + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo:Không hợp lệArgument:(MSFT_PrinterDriver:ROOT / StandardCimv2 / MSFT_PrinterDriver) [Add-PrinterDriver], CimException + CompleteQualifiedErrorId:HRESULT 0x80070057, Add-PrinterDriver

Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016

Nó chỉ ra rằng trình điều khiển từ tệp INF chỉ có thể được cài đặt nếu nó đã tồn tại trong DriverStore. Có vẻ như bạn không thể cài đặt trình điều khiển in không có trong Driver Store bằng lệnh Add-PrinterDriver. Để thêm trình điều khiển vào DriverStore, bạn có thể sử dụng:

  • tập lệnh VBS được mô tả trong bài viết trước;
  • tiện ích - pnputil.exe . Lệnh có thể trông như sau:pnputil.exe -i -a C:\Distr\HP-pcl6-x64\hpcu118u.inf (cài đặt trình điều khiển máy in cụ thể) hoặc pnputil.exe -i -a C:\Distr\HP-pcl6-x64\*.inf (cài đặt tất cả các trình điều khiển được tìm thấy trong các tệp INF trong thư mục được chỉ định); Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016
  • lệnh ghép ngắn Add-WindowsDriver cho phép tích hợp trình điều khiển vào hình ảnh Windows ngoại tuyến.

Sau khi thêm trình điều khiển máy in vào kho lưu trữ trình điều khiển, bạn nên cài đặt nó trên máy chủ in:

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

Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016

Mẹo . Làm thế nào để tìm hiểu những gì bạn nên chỉ định trong trường tên trình điều khiển in khi cài đặt trình điều khiển qua PowerShell? Tên trình điều khiển in được chỉ định phải khớp chính xác với tên hệ thống nội bộ của nó, nếu không, lỗi sẽ xuất hiện trong quá trình cài đặt trình điều khiển. Bạn có thể tìm ra tên trình điều khiển chính xác bằng cách sử dụng get-printdriver trên máy tính đã cài đặt trình điều khiển in này hoặc bằng cách kiểm tra thủ công tệp .inf của trình điều khiển. Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016

Cách cài đặt máy in bằng PowerShell?

Tạo cổng IP cho máy in mạng (ở đây bạn có thể chỉ định cả địa chỉ IP của máy in mạng và tên của máy chủ in từ xa):

Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26"

Trước khi thêm một cổng in IP mới, bạn có thể kiểm tra xem nó có tồn tại hay không:

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

Với sự trợ giúp của lệnh sau, chúng tôi sẽ cài đặt và chia sẻ một máy in mới trên máy tính:

Add-Printer -Name hp3027_Office1_Buh -DriverName "HP LaserJet M3027 MFP PCL6 Class Driver" -PortName IP_192.168.10.26 -Shared -ShareName "hp3027_1_BUh" –Published

Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016

Lưu ý :Lưu ý rằng để thực hiện cùng một thao tác (cài đặt và chia sẻ máy in) bằng tập lệnh VBS (Tập lệnh quản trị viên in), bạn nên thực hiện hai lệnh khác nhau.

Sau khi chạy các lệnh này, một máy in dùng chung mới có tên “hp3027_Office1” sẽ xuất hiện trong hệ thống.

Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016

Để đổi tên máy in, chỉ cần chạy lệnh:

Rename-Printer -Name "hp3027_1_Buh" -NewName "hp3027_F1_Salary"

Liệt kê các Máy in đã Cài đặt trên Máy chủ In

Hãy hiển thị danh sách đầy đủ các máy in được cài đặt trên máy tính này:

Get-Printer

Như bạn có thể thấy, lệnh hiển thị tên máy in, loại (cục bộ hoặc mạng), trình điều khiển, cổng in, liệu máy in có được chia sẻ và xuất bản trong Active Directory hay không.

Quản lý máy in và trình điều khiển bằng PowerShell trong Windows 10 / Server 2016

Hầu hết các lệnh ghép ngắn PrintManagement có thể được sử dụng để xem trạng thái và quản lý máy in, trình điều khiển và hàng đợi in trên máy tính từ xa (máy chủ in). Tên của máy tính hoặc máy chủ từ xa được chỉ định làm đối số của –ComputerName tham số.

Bạn có thể nhận thông tin về các máy in đã cài đặt trên máy tính từ xa bằng lệnh PowerShell:

Get-Printer -ComputerName rome-prnt1 | Format-List Name,DriverName

Để chỉ hiển thị danh sách các máy in được chia sẻ, hãy sử dụng lệnh:

Get-Printer -ComputerName rome-prnt1 | where Shared -eq $true | fl Name

Kết nối với Máy in dùng chung trong mạng bằng PowerShell

Để kết nối máy in được chia sẻ từ máy chủ in, hãy sử dụng lệnh:

Add-Printer -ConnectionName \\rome-prnt1\HP3027

Windows 10 sử dụng máy in mới nhất được sử dụng để in làm máy in mặc định. Nếu bạn muốn sử dụng một máy in mặc định cố định, hãy chạy lệnh:

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

Để đặt máy in mặc định, bạn có thể sử dụng các lệnh sau:

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

Cách xóa Máy in bằng PowerShell?

Để xóa máy in, bạn cần chạy lệnh PowerShell sau:

Remove-Printer -Name "hp3027_L1_O1"

Bạn có thể gỡ bỏ một trình điều khiển cụ thể bằng cách sử dụng lệnh ghép ngắn Remove-PrinterDriver:

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