이전 기사에서는 Windows XP부터 시작하여 모든 Windows 버전에서 프린터 및 인쇄 작업을 관리하는 데 사용할 수 있는 구식 VBS 스크립트를 살펴보았습니다. 오늘 우리는 PowerShell을 사용하여 프린터, 인쇄 포트, 드라이버 및 대기열을 설치, 관리 및 제거하는 일반적인 명령을 고려할 것입니다. PowerShell CLI에서 프린터를 관리하는 이러한 방법은 최신 운영 체제(Windows 10/8.1 및 Windows Server 2019/2016/2012 R2)에서 사용할 수 있습니다.
PowerShell 모듈:PrintManagement
Windows 8.1 및 Windows Server 2012 R2 출시와 함께 Microsoft는 Windows 기반 인쇄 서버 관리 cmdlet 목록을 크게 확장한 새 버전의 PowerShell 4.0(Windows Management Framework 4.0의 일부)을 출시했습니다. 다음 명령을 사용하여 Windows 10(PowerShell v5)의 PrintManagement 모듈에서 사용할 수 있는 인쇄, 드라이버 및 인쇄 대기열 관리 cmdlet의 전체 목록을 가져올 수 있습니다.
Get-Command –Module PrintManagement
PrintManagement 모듈에는 프린터, 드라이버, 인쇄 포트 및 대기열을 관리하기 위한 22개의 PowerShell cmdlet이 포함되어 있습니다.
- 프린터 추가 – 새 프린터 추가(설치)
- 프린터 드라이버 추가 – 새 인쇄 드라이버 설치
- 프린터 포트 추가 – 로컬 인쇄 포트 생성
- Get-PrintConfiguration – 프린터 구성 표시
- Get-Printer – 컴퓨터에 설치된 프린터 목록을 표시합니다.
- 프린터 드라이버 가져오기 – 설치된 드라이버 목록을 표시합니다.
- Get-PrinterPort – 프린터 포트 목록을 표시합니다.
- Get-PrinterProperty – 프린터 속성 표시
- Get-PrintJob – 프린터 인쇄 작업 목록을 가져옵니다.
- 프린터NfcTag 읽기 – NFC 태그에서 프린터 정보를 얻습니다.
- 프린터 제거 – 프린터를 제거합니다.
- 프린터 드라이버 제거 — 프린터 드라이버 제거
- PrinterPort 제거 – 프린터 포트를 제거합니다.
- 인쇄 작업 제거 – 프린터에서 인쇄 작업을 삭제합니다.
- 프린터 이름 바꾸기 – 프린터 이름 바꾸기,
- Restart-PrintJob – 인쇄 작업을 다시 시작합니다.
- Resume-PrintJob – 일시 중지된 인쇄 작업을 재개합니다.
- 인쇄 구성 설정 – 프린터 구성을 설정합니다.
- 세트 프린터 – 프린터 구성 업데이트
- 프린터 속성 설정 – 프린터 속성 변경
- 인쇄 작업 일시 중단 – 인쇄 작업을 일시 중지(일시 중지)합니다.
- Write-PrinterNfcTag – NFC 태그에 정보를 기록합니다.
명령 구문에 대한 자세한 정보를 얻으려면 다음 명령을 사용하십시오.
Get-Help <cmdlet_name> -Detailed
명령 사용 예:
Get-Help < cmdlet_name> -Examples
Windows 10에서 PowerShell을 사용하는 일반적인 프린터 관리 작업의 몇 가지 예를 살펴보겠습니다.
DriverStore에 프린터 드라이버 추가
Windows DriverStore에 설치된 인쇄 드라이버를 나열하려면:
Get-PrinterDriver
그런 다음 시스템에 새 프린터 드라이버를 설치합니다. 예를 들어 널리 사용되는 인쇄 드라이버 "HP Universal Printing PCL 6"을 설치하려고 합니다. 설명서에 따르면 인쇄 드라이버를 추가하는 PowerShell 명령은 다음과 같아야 합니다.
Add-PrinterDriver -Name "HP Universal Printing PCL 6" -InfPath "C:\Distr\HP-pcl6-x64\hpcu118u.inf"
그러나 이 방법으로 드라이버를 설치하려고 하면 다음 오류 메시지가 나타납니다.
Add-PrinterDriver:이 작업에 대해 지정된 하나 이상의 매개변수에 잘못된 값이 있습니다.At line:1 char:1 + Add-PrinterDriver -이름 "HP Universal Printing PCL 6" -InfPath "C:\Di ...+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+ CategoryInfo :InvalidArgument:(MSFT_PrinterDriver:ROOT/StandardCimv2/MSFT_PrinterDriver) [Add-PrinterDriver], CimException + FullQualifiedErrorId :HRESULT 0x80070057,Add-PrinterDriver
INF 파일의 드라이버는 DriverStore에 이미 있는 경우에만 설치할 수 있습니다. Add-PrinterDriver 명령을 사용하여 드라이버 저장소에 없는 인쇄 드라이버를 설치할 수 없는 것 같습니다. DriverStore에 드라이버를 추가하려면 다음을 사용할 수 있습니다.
- 이전 기사에서 설명한 VBS 스크립트
- 유틸리티 — pnputil.exe . 명령은 다음과 같습니다.
pnputil.exe -i -a C:\Distr\HP-pcl6-x64\hpcu118u.inf
(특정 프린터 드라이버 설치) 또는pnputil.exe -i -a C:\Distr\HP-pcl6-x64\*.inf
(지정된 디렉토리의 INF 파일에서 찾은 모든 드라이버를 설치합니다); - Add-WindowsDriver cmdlet 드라이버를 오프라인 Windows 이미지에 통합할 수 있습니다.
드라이버 저장소에 프린터 드라이버를 추가한 후 인쇄 서버에 설치해야 합니다.
Add-PrinterDriver -Name "HP Universal Printing PCL 6"
도움말 . PowerShell을 통해 드라이버를 설치할 때 인쇄 드라이버 이름 필드에 무엇을 지정해야 하는지 찾는 방법은 무엇입니까? 지정된 인쇄 드라이버 이름은 내부 시스템 이름과 정확히 일치해야 합니다. 그렇지 않으면 드라이버 설치 중에 오류가 나타납니다. get-printerdriver를 사용하여 올바른 드라이버 이름을 찾을 수 있습니다. 이 인쇄 드라이버가 이미 설치된 컴퓨터에서 명령을 실행하거나 드라이버의 .inf 파일을 수동으로 검사합니다.
PowerShell을 사용하여 프린터를 설치하는 방법
네트워크 프린터용 IP 포트 생성(여기서 네트워크 프린터의 IP 주소와 원격 인쇄 서버의 이름을 모두 지정할 수 있음):
Add-PrinterPort -Name "IP_192.168.10.26" -PrinterHostAddress "192.168.10.26"
새 IP 인쇄 포트를 추가하기 전에 존재하는지 확인할 수 있습니다.
$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"
}
다음 명령을 사용하여 컴퓨터에 새 프린터를 설치하고 공유합니다.
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
참고 :VBS 스크립트(관리 스크립트 인쇄)를 사용하여 동일한 작업(프린터 설치 및 공유)을 수행하려면 두 가지 다른 명령을 수행해야 합니다.
이 명령을 실행하면 "hp3027_Office1"이라는 이름의 새 공유 프린터가 시스템에 나타납니다.
프린터 이름을 바꾸려면 다음 명령을 실행하십시오.
Rename-Printer -Name "hp3027_1_Buh" -NewName "hp3027_F1_Salary"
인쇄 서버에 설치된 프린터 나열
이 컴퓨터에 설치된 프린터의 전체 목록을 표시해 보겠습니다.
Get-Printer
보시다시피 이 명령은 프린터 이름, 유형(로컬 또는 네트워크), 드라이버, 인쇄 포트, 프린터가 Active Directory에서 공유 및 게시되는지 여부를 표시합니다.
대부분의 PrintManagement cmdlet은 상태를 보고 원격 컴퓨터(인쇄 서버)의 프린터, 드라이버 및 인쇄 대기열을 관리하는 데 사용할 수 있습니다. 원격 컴퓨터 또는 서버의 이름은 –ComputerName 인수로 지정됩니다. 매개변수.
PowerShell 명령을 사용하여 원격 컴퓨터에 설치된 프린터에 대한 정보를 얻을 수 있습니다.
Get-Printer -ComputerName rome-prnt1 | Format-List Name,DriverName
공유 프린터 목록만 표시하려면 다음 명령을 사용하십시오.
Get-Printer -ComputerName rome-prnt1 | where Shared -eq $true | fl Name
PowerShell을 사용하여 네트워크 공유 프린터에 연결
인쇄 서버에서 공유 프린터를 연결하려면 다음 명령을 사용하십시오.
Add-Printer -ConnectionName \\rome-prnt1\HP3027
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 명령을 실행해야 합니다.
Remove-Printer -Name "hp3027_L1_O1"
Remove-PrinterDriver cmdlet을 사용하여 특정 드라이버를 제거할 수 있습니다.
Remove-PrinterDriver -Name "HP Universal Printing PCL 6"