PowerShell 可高效批量部署 Windows 打印机,需组合使用 Add-Printer、Add-PrinterDriver 等 cmdlet,注意驱动签名、架构匹配及端口预创建;支持 IP/共享打印机添加、默认设置、权限控制与隐藏发布。
powershell 可以高效完成 windows 打印机的添加、删除、配置和驱动部署,尤其适合批量部署或无人值守场景。关键在于合理组合 add-printer、add-printerdriver、add-printconnection 等 cmdlet,并正确处理驱动签名与 inf 路径。
添加本地或网络打印机
使用 Add-Printer 可直接添加本地端口(如 LPT1、USB)或网络打印机(如 IP 或共享路径)。注意:网络打印机需确保端口已存在或自动创建。
- 添加 IP 打印机(自动创建 Standard TCP/IP 端口):
Add-Printer -Name "HP-LaserJet-M605" -PortName "192.168.1.100" -DriverName "HP LaserJet M605 PCL6" - 添加共享打印机(需目标主机已共享且权限允许):
Add-Printer -ConnectionName "\PRINTSERVEROffice-Canon-MF4450" - 若端口不存在,先用
Add-PrinterPort创建(如 TCP/IP 端口):Add-PrinterPort -Name "192.168.1.100" -PrinterHostAddress "192.168.1.100"
安装打印机驱动(含 INF 文件方式)
系统内置驱动可直接引用名称;自定义驱动(如厂商提供 .inf)需先用 Add-PrinterDriver 注册,再用于打印机添加。驱动必须兼容系统架构(x64/x86),且 INF 需经数字签名(测试环境可用 bcdedit /set testsigning on 临时绕过)。
- 安装已签名的本地 INF 驱动:
Add-PrinterDriver -Name "Canon MF4450 UFRII LT" -InfPath "C:DriversCanonmf4450OEMSETUP.INF" - 验证驱动是否注册成功:
Get-PrinterDriver | Where-Object Name -like "*Canon*" - 若 INF 引用其他文件(如 .dll/.sys),确保整个驱动目录结构完整,
InfPath指向 INF 主文件即可
设置默认打印机与权限控制
添加后可立即设为默认,也可通过 WMI 或 PrintManagement 模块精细管理权限(如限制普通用户删除/暂停)。
- 设为当前用户默认打印机:
(Get-Printer -Name "HP-LaserJet-M605").SetDefaultPrinter() - 授予指定用户管理权限(需 PrintManagement 模块):
Set-Printer -Name "HP-LaserJet-M605" -PermissionSDDL "O:BAG:BAD:P(A;;GA;;;BA)(A;;GRGW;;;S-1-5-21-xxx-UserSID)"
(SDDL 字符串可通过Get-Printer的PermissionSDDL属性参考生成) - 隐藏打印机图标(仅后台可用):
Set-Printer -Name "Temp-Label-Printer" -Shared $false -Published $false
自动化脚本示例(含错误处理)
实际部署建议封装为带参数、日志和回滚的脚本。以下为简化版核心逻辑:
通过 SSH 隧道从 Android 设备在互联网上对 Windows PC 实现完整远程控制的设置与使用指南,适用于远程桌面访问、安全 RDP 等。
# 参数化安装网络打印机
param(
[string]$PrinterName = "Dept-Xerox-7855",
[string]$IP = "192.168.5.200",
[string]$DriverInf = "C:DriversXerox855xrx7855m.inf"
)
<p>try {</p><h1>安装驱动</h1><pre class="brush:php;toolbar:false;">Add-PrinterDriver -Name "Xerox WorkCentre 7855 PCL6" -InfPath $DriverInf -ErrorAction Stop
# 创建端口
Add-PrinterPort -Name $IP -PrinterHostAddress $IP -ErrorAction Stop
# 添加打印机
Add-Printer -Name $PrinterName -PortName $IP -DriverName "Xerox WorkCentre 7855 PCL6" -ErrorAction Stop
Write-Host "✅ 打印机 $PrinterName 已成功部署" -ForegroundColor Green} catch { Write-Host "❌ 部署失败:$($_.Exception.Message)" -ForegroundColor Red }
不复杂但容易忽略驱动签名和体系结构匹配问题,建议在目标系统上先手动安装一次驱动,再用 Get-PrinterDriver 确认驱动名是否一致。










