이전 기사에서는 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"
![Windows 10 / Server 2016에서 PowerShell을 사용하여 프린터 및 드라이버 관리](/article/uploadfiles/202203/2022032916303283.jpg)
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
이 명령을 실행하면 "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"