通过 PowerShell 添加网络打印机并创建一个标准 TCP/IP 端口,您可以使用 Add-PrinterPort 和 Add-Printer cmdlet。以下是一个详细的示例,演示了如何创建 TCP/IP 端口并添加网络打印机。使用 PowerShell 安装 Windows 网络打印机,您可以通过以下步骤来实现。下面提供了一些常用的 PowerShell 命令,用于添加网络打印机。
TCP/IP 规范、标准和技术文档来源
TCP/IP(传输控制协议/网际协议)是用于计算机网络通信的核心协议套件,它包含了多个协议,用于支持数据在网络中的传输、路由和管理。其标准和规范由多个标准化组织定义和发布,主要包括 IETF(Internet Engineering Task Force)和 ISO(国际标准化组织)等机构。
1. IETF(Internet Engineering Task Force)
IETF 是负责制定互联网相关标准和协议的国际组织,TCP/IP 相关的协议标准主要由 IETF 发布。
IETF TCP/IP 相关标准
-
RFC(Request for Comments):IETF 发布的技术文档,描述了互联网技术和标准,包括 TCP/IP 协议族的详细规范。
- RFC 文档库:这是 TCP/IP 协议的权威来源,包括所有 TCP/IP 协议的详细标准和技术文档。
- 经典的与 TCP/IP 相关的 RFC 文档:
- RFC 791:《Internet Protocol》——定义了 IP(Internet Protocol,网际协议)标准。
- RFC 793:《Transmission Control Protocol》——定义了 TCP(传输控制协议)标准。
- RFC 768:《User Datagram Protocol》——定义了 UDP(用户数据报协议)标准。
- RFC 2460:《Internet Protocol, Version 6 (IPv6)》——定义了 IPv6 的标准。
- RFC 1122:《Requirements for Internet Hosts - Communication Layers》——定义了互联网主机通信的基本要求。
- RFC 1123:《Requirements for Internet Hosts - Application and Support》——补充了主机在应用层的标准。
-
IETF RFC 按照协议类别:在 IETF 网站上,你可以按协议类别查找和阅读相关 RFC 文档,例如 IP、TCP、UDP、ICMP 等。
IETF 相关工作组
- IETF 下设多个工作组负责定义不同领域的技术标准。与 TCP/IP 相关的工作组包括:
- Internet Area Working Group (intarea):涉及互联网协议和相关技术的标准化工作。
- Transport Area Working Group (tsvwg):涉及传输层协议的标准化工作。
2. ISO(国际标准化组织)
ISO 发布了一些与 TCP/IP 相关的国际标准,特别是在网络和通信协议方面。
ISO 相关标准
- ISO/IEC 7498-1:《Information processing systems – Open Systems Interconnection – Basic Reference Model》——定义了开放系统互联(OSI)参考模型,为 TCP/IP 协议族提供了一个理论框架。
- ISO/IEC 10747:《Information Technology – Telecommunications and Information Exchange between Systems – Open Distributed Processing (ODP) – Reference Model》——对开放分布式处理(ODP)提供标准。
- ISO/IEC 13888:《Security techniques – Non-repudiation》——这对网络安全协议(包括 TCP/IP)中身份验证和数据完整性提供了相关标准。
3. RFC 中的重要标准概述
以下是一些 TCP/IP 相关的基础 RFC,概述了协议的设计和实现细节:
1. IP(Internet Protocol)
-
RFC 791:《Internet Protocol》——定义了 IPv4 的基本概念,包括 IP 数据包的结构、路由机制等。
-
RFC 2460:《Internet Protocol, Version 6 (IPv6)》——定义了 IPv6 的规范,解决了 IPv4 中的地址耗尽问题。
2. TCP(Transmission Control Protocol)
- RFC 793:《Transmission Control Protocol》——定义了 TCP 协议,描述了数据包的可靠传输、流量控制、连接管理等机制。
3. UDP(User Datagram Protocol)
- RFC 768:《User Datagram Protocol》——定义了 UDP 协议,是一种无连接的传输协议,适用于低延迟的应用。
4. ICMP(Internet Control Message Protocol)
- RFC 792:《Internet Control Message Protocol》——定义了 ICMP 协议,用于在网络设备间传递控制消息和错误报告。
4. 网络协议族与模型
TCP/IP 协议套件包括许多协议,分为不同层级:
- 应用层:HTTP、FTP、SMTP、DNS 等协议。
- 传输层:TCP、UDP 协议。
- 网络层:IP、ICMP、ARP、IPv6 等协议。
- 数据链路层:以太网、PPP 等协议。
TCP/IP 参考模型与 OSI 模型(开放系统互联模型)相比,具有更简单的四层结构:应用层、传输层、网络层、链路层。
5. TCP/IP 技术白皮书与书籍
- 《TCP/IP Illustrated》:由 W. Richard Stevens 编写,详细介绍了 TCP/IP 协议的原理、实现和调试方法,是 TCP/IP 学习者的重要参考书籍。
- 《Internetworking with TCP/IP》:由 Douglas E. Comer 编写,深入介绍了 TCP/IP 协议及其在网络中的应用。
6. 官方和开源实现
-
Linux TCP/IP Stack:Linux 操作系统中的 TCP/IP 实现是开源的,详细文档和源码可供参考。
-
BSD TCP/IP Stack:BSD 操作系统(如 FreeBSD、OpenBSD)中的 TCP/IP 实现也是开源的,可以参考其源码来了解 TCP/IP 的实现细节。
- IETF 提供了与 TCP/IP 相关的 RFC 文档,是最权威的标准和技术文档来源。
- ISO 提供了一些与网络和通信相关的国际标准,尤其是在开放系统互联和安全技术方面。
- 通过查阅 RFC 文档 和相关的 技术书籍,可以深入了解 TCP/IP 协议族的工作原理和实现细节。
Add-PrinterPort / Add-Printer PowerShell 完整拆解解构
spoolsv.exe(Print Spooler)
两条命令分工边界
- Add-PrinterPort:创建打印机端口(TCP Raw、LPR、本地端口等通信载体)
- Add-Printer:绑定驱动、端口,注册逻辑打印机到系统打印后台
一、底层原理
1. 整体架构模型
应用程序 → Winspool.drv(用户态打印API)
↓ IRP/进程通信
spoolsv.exe(打印后台服务,核心中枢)
↓ 加载各类端口监视器(DLL)
↓
├─ TCP/RAW端口监视器 win32spl.dll
├─ LPR端口监视器 lprmon.dll
├─ 本地端口监视器 localmon.dll
├─ USB端口监视器 usbmon.dll
↓
tcpip.sys / NDIS → 网络打印机
- PrinterPort(打印机端口):定义如何与物理打印设备通信(IP 地址、协议、端口号);
- Printer(逻辑打印机):端口 + 打印驱动 + 名称 + 配置组合;一台物理打印机可对应多个逻辑打印机;同一个端口可被多台逻辑打印机复用。
2. Add-PrinterPort 底层原理
- Standard TCP/IP Port(RAW 9100,最通用网络打印机)
- LPR Port(RFC1179,依赖
Printing-LPR-Port-Monitor) - LocalPort(本地文件端口
C:\printjob.prn、共享端口\\server\printer) - USB、WSD、Bluetooth 端口
3. Add-Printer 底层原理
前置硬性条件:目标端口必须预先存在(先 Add-PrinterPort,再 Add-Printer)。打印作业流转:应用输出 → spoolsv → 根据打印机绑定端口 → 端口监视器 → 网络 / 本地设备。
二、依赖文件、注册表、系统服务
1. 核心二进制文件
spoolsv.exe打印后台处理程序(唯一核心服务进程)winspool.drv用户态 Win32 打印 API(PowerShell Cmdlet 最终调用这套 API)win32spl.dllStandard TCP/IP 端口监视器lprmon.dllLPR 端口监视器(需要安装可选功能:LPR 端口监视器)localmon.dll本地端口监视器- PrintManagement PowerShell 模块
C:\Windows\System32\WindowsPowerShell\v1.0\Modules\PrintManagement\
2. 关键服务
- 停止 Spooler:无法新增端口、新增打印机、提交打印任务;
- 所有打印管理 Cmdlet 强依赖此服务。
3. 注册表持久化位置(端口 & 打印机配置)
打印机端口注册表
HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\[监视器名称]\Ports
HKLM\SYSTEM\CurrentControlSet\Control\Print\Monitors\Standard TCP/IP Port\Ports\192.168.1.100
逻辑打印机注册表
HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\[PrinterName]
打印驱动存储
HKLM\SYSTEM\CurrentControlSet\Control\Print\Environments\
C:\Windows\System32\spool\DRIVERS4. 网络层依赖
ws2_32.dll → afd.sys → tcpip.sys → NDIS → 网卡- RAW 打印:TCP 9100
- LPR 打印:TCP 515
5. 可选功能依赖(LPR 场景)
Printing-LPR-Port-Monitor,否则 lprmon.dll 不存在,端口创建失败。三、依赖关系梳理
执行调用链
PowerShell Console
↓ 加载 PrintManagement 模块
Add-PrinterPort / Add-Printer Cmdlet
↓ 封装调用 Winspool.drv Win32 Print API
├─ Add-PrinterPort → OpenPrinterPort / AddPort API
└─ Add-Printer → AddPrinter API
↓ RPC本地通信 → spoolsv.exe(Print Spooler)
↓ spoolsv更新打印注册表
↓ 加载对应端口监视器DLL(win32spl.dll / lprmon.dll)
强制依赖约束
- 执行顺序约束
必须先创建端口 Add-PrinterPort,再执行 Add-Printer;Add-Printer 无法自动创建端口。
- 服务依赖
Spooler 服务运行;服务禁用 → 所有命令报错。
- 权限依赖
新增端口、新增打印机必须管理员权限;普通用户仅可连接已发布共享打印机。
- 驱动依赖
Add-Printer 指定的驱动名称必须已经预安装在系统驱动库;否则创建打印机失败。
- 组件依赖区分
- TCP RAW 端口:系统原生自带监视器,无需额外 FoD 组件;
- LPR 端口:依赖可选功能 LPR 端口监视器。
上下游依赖总图
四、完整逻辑链路
链路 1:Add-PrinterPort 创建标准 TCP 端口(RAW 9100)
Add-PrinterPort -Name "192.168.1.50" -PrinterHostAddress "192.168.1.50"
- Cmdlet 校验参数,调用 winspool.drv AddPort 函数;
- RPC 请求发送至 spoolsv.exe;
- spoolsv 加载
win32spl.dll(Standard TCP/IP Port 监视器); - 在监视器注册表项下新建端口注册表键,写入 IP 地址、默认 RAW 端口 9100;
- 端口注册完成,可被打印机绑定;
- 无网络连接产生,仅注册配置,不会主动连通打印机。
链路 2:Add-Printer 绑定端口生成逻辑打印机
Add-Printer -Name "Office-Printer" -DriverName "HP Universal Printing PCL 6" -PortName "192.168.1.50"
- Cmdlet 调用 Win32 AddPrinter API;
- spoolsv 校验两点:
- 指定 PortName 是否已存在;
- 指定 DriverName 是否在系统驱动库存在;
- 通过校验 → 在
HKLM\Control\Print\Printers创建打印机项; - 写入绑定端口、驱动、安全配置、默认打印参数;
- 系统控制面板、设置界面出现新打印机;
- 此时依然不会发起网络连接;首次打印作业触发时才建立 TCP 连接。
链路 3:打印作业下发完整链路(运行时)
- Word / 浏览器发起打印;
- GDI 渲染 → 生成打印 EMF/RAW 数据;
- 数据提交 spoolsv,生成后台缓冲文件(
C:\Windows\System32\spool\PRINTERS); - spoolsv 读取打印机绑定端口名称;
- 调用对应端口监视器(win32spl.dll);
- 监视器通过 ws2_32 发起 TCP 连接至打印机 IP:9100;
- tcpip.sys 完成数据包传输,发送打印数据流。
链路 4:典型故障链路
- Spooler 服务停止 → Add-PrinterPort/Add-Printer 直接失败;
- 端口名称拼写不一致 → Add-Printer 提示端口不存在;
- 驱动未预安装 → 创建打印机失败;
- 创建 LPR 端口,但未安装 LPR 端口监视器可选功能 → 端口类型不识别;
- 端口创建成功,但打印机断电 / 防火墙拦截 → 仅打印时报错,创建命令不会提示失败(创建阶段不连通设备);
- 注册表权限损坏 → spoolsv 无法写入端口配置。
五、配套链(配套命令、图形入口、运维、故障工具)
1. PrintManagement 配套 PowerShell 命令
# 查看现有端口
Get-PrinterPort
# 删除端口
Remove-PrinterPort
# 查看已注册逻辑打印机
Get-Printer
# 删除打印机
Remove-Printer
# 查看系统已安装打印驱动(前置检查必备)
Get-PrinterDriver
# 安装打印驱动包
Add-PrinterDriver
# 重启打印后台服务
Restart-Service Spooler
2. 图形界面对应入口
3. 配套可选打印组件(LPR/LPD 场景)
# LPR打印必须提前安装
Enable-WindowsOptionalFeature -Online -FeatureName Printing-LPR-Port-Monitor
4. 传统工具配套
printui.exe(打印 UI 工具)、rundll32 printui.dll,底层同样封装 winspool.drv;
lpq.exe / lpr.exe LPR 命令行测试工具。5. 排错配套
- 事件查看器 → 应用程序日志,源 PrintSpooler;
- 抓包:Wireshark 观察 TCP9100/515 流量,区分「配置成功」与「通信可用」;
- 清理缓冲:停止 Spooler,删除
C:\Windows\System32\spool\PRINTERS文件; - 防火墙:放行出站 TCP9100;若启用 LPD 服务需放行入站 TCP515。
6. 安全配套视角
- 管理员可通过脚本批量部署网络打印机(企业域环境标准运维方案);
- 恶意程序若具备管理员权限,可新增打印机、劫持打印端口、篡改打印驱动;
- 网络 RAW 打印协议无加密,敏感业务建议使用 IPPS/IPP 替代 RAW9100。
PowerShell 打印机管理完整配套链(Add-PrinterPort + Add-Printer 核心上下游全组件)
Add-PrinterPort(端口)、Add-Printer(打印机)是中间绑定核心节点。一、底层前置配套:驱动管理(打印机部署必备前置)
Get-PrinterDriver查看系统已安装打印驱动,确认驱动名称、厂商、型号,用于Add-Printer引用powershell# 列出所有驱动,筛选HP型号 Get-PrinterDriver | Where Name -match "HP LaserJet"Add-PrinterDriver安装本地 / 共享打印驱动(INF 包、Windows 更新驱动),部署打印机前置操作powershell# 从驱动目录安装打印驱动 Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\hpljm404.inf"Remove-PrinterDriver卸载闲置打印驱动,清理系统冗余驱动包
二、端口层核心:Add-PrinterPort 配套全组件(管理 TCP / 本地 / USB 端口)
1. 端口创建核心:Add-PrinterPort
Add-PrinterPort -Name "IP_192.168.1.100" -PrinterHostAddress "192.168.1.100"
配套端口管理 Cmdlet
Get-PrinterPort查询本机所有已创建打印端口,验证端口是否创建成功、查看 IP 地址powershellGet-PrinterPort | Select Name,PrinterHostPort,PortNumberRemove-PrinterPort删除闲置 / 失效打印端口(必须先删除绑定该端口的打印机,否则报错占用)powershellRemove-PrinterPort -Name "IP_192.168.1.100"Get-WSDDevice扫描局域网 WSD 无线打印机,自动提取设备地址,配合Add-PrinterPort创建 WSD 端口Add-PrinterPort依赖底层组件:TCP/IP 打印服务Spooler(打印后台处理程序)
三、绑定层核心:Add-Printer(端口 + 驱动绑定生成打印机实例)
核心作用
# 1. 创建TCP端口
Add-PrinterPort -Name "LAN_Printer_192.168.1.50" -PrinterHostAddress "192.168.1.50"
# 2. 绑定驱动+端口,创建打印机
Add-Printer -Name "车间HP激光打印机" -DriverName "HP LaserJet Pro M404" -PortName "LAN_Printer_192.168.1.50"
Add-Printer 配套管理 Cmdlet
Get-Printer查看本机所有打印机,校验端口、驱动、在线状态powershellGet-Printer | Select Name,PortName,DriverName,StatusSet-Printer修改已存在打印机配置:更换端口、共享开关、打印首选项、是否默认打印机powershell# 设置为默认打印机 Set-Printer -Name "车间HP激光打印机" -Default $true # 更换绑定端口 Set-Printer -Name "车间HP激光打印机" -PortName "LAN_Printer_192.168.1.51"Remove-Printer删除打印机实例,释放绑定端口,之后可删除对应 PrinterPortpowershellRemove-Printer -Name "车间HP激光打印机"Rename-Printer重命名已部署打印机
四、共享 / 客户端远程配套(企业域批量打印部署)
Set-PrinterShare将本地打印机设置为共享打印机,配置共享名,域客户端可远程连接powershellSet-Printer -Name "车间HP激光打印机" -ShareName "Shop_HP_Printer" -Shared $trueAdd-PrinterConnection客户端远程连接服务器共享打印机(无需本地创建端口,自动拉取服务端端口配置)powershellAdd-PrinterConnection -Name "\\PrintServer01\Shop_HP_Printer"Get-PrinterServer读取打印服务器共享打印机列表,批量批量创建端口 + 打印机
五、打印队列、作业运维配套(打印机上层管控)
Get-PrintJob:查看当前打印机所有待打印任务Remove-PrintJob:清除卡住、错误打印队列Restart-Service Spooler:重启打印后台服务,修复端口通信卡死、队列堵塞Get-PrinterConfiguration/Set-PrinterConfiguration:配置纸张、双面、黑白 / 彩色默认首选项
六、导出 / 迁移备份配套(批量终端标准化部署)
Export-Printer导出本机全部打印机、端口、驱动配置为 XML 备份文件powershellExport-Printer -Path "D:\print_backup.xml"Import-Printer在新终端导入备份 XML,自动执行:创建 PrinterPort 端口 → 安装驱动 → 创建 Add-Printer 打印机,全自动流水线部署powershellImport-Printer -Path "D:\print_backup.xml"
七、完整端到端配套执行链路(标准化企业部署流程)
1. 检查/安装打印驱动 Add-PrinterDriver
↓
2. 创建网络打印端口 Add-PrinterPort
↓
3. 绑定端口+驱动生成打印机 Add-Printer
↓
4. 可选:共享打印机 Set-Printer -Shared
↓
5. 运维:查看/修改/删除 Get-Printer / Set-Printer / Remove-Printer
↓
6. 备份迁移:Export-Printer / Import-Printer 全链路复刻
八、底层系统服务依赖(整条配套链运行基础)
# 校验服务运行状态
sc query spooler
# 重启打印服务修复端口/打印机加载异常
net stop spooler && net start spooler
Add-PrinterPort、Add-Printer 全部执行失败。一、PowerShell 查看已安装打印机(Get-Printer)
Get-Printer,依赖打印后台服务 Spooler,需管理员 / 普通用户均可执行。1. 基础查看(全部打印机完整信息)
# 列出本机所有本地+网络共享打印机
Get-Printer
2. 精简关键字段(常用运维视图)
Get-Printer | Select Name,PortName,DriverName,Status,Default,Shared,ShareName
3. 过滤筛选场景示例
① 只查看本地 TCP 网络打印机(带 IP 端口)
Get-Printer | Where PortName -match "^IP_"
② 筛选共享打印机
Get-Printer | Where Shared -eq $true
③ 查看默认打印机
Get-Printer | Where Default -eq $true
④ 按名称模糊匹配(查找 HP 打印机)
Get-Printer | Where Name -match "HP"
4. 导出打印机清单到 CSV 备份
Get-Printer | Select Name,PortName,DriverName,Status,Shared,ShareName | Export-Csv C:\print_list.csv -NoTypeInformation -Encoding UTF8
二、PowerShell 删除打印机(Remove-Printer)
基础语法
Remove-Printer -Name "打印机名称"
1. 单台打印机删除示例
# 删除名为「车间HP激光打印机」的设备
Remove-Printer -Name "车间HP激光打印机"
2. 批量删除匹配规则的打印机
删除所有 HP 打印机
Get-Printer | Where Name -match "HP" | Remove-Printer
删除所有共享打印机
Get-Printer | Where Shared -eq $true | Remove-Printer
3. 强制删除(跳过确认提示)
Get-Printer | Where Name -match "测试打印机" | Remove-Printer -Confirm:$false
重要配套约束
- 仅删除打印机实例,不会自动删除绑定的打印端口(
PrinterPort)与驱动;如需清理端口,需额外执行Remove-PrinterPort; - 共享打印机必须先关闭共享,否则部分系统删除会报错占用;
- 网络客户端共享连接打印机可直接删除,不影响打印服务器端设备。
# 1. 获取目标打印机端口
$port = Get-Printer -Name "车间HP激光打印机" | Select -ExpandProperty PortName
# 2. 删除打印机
Remove-Printer -Name "车间HP激光打印机" -Confirm:$false
# 3. 删除闲置端口
Remove-PrinterPort -Name $port -Confirm:$false
三、PowerShell 配置打印机共享设置(Set-Printer)
-Shared(开启 / 关闭共享)、-ShareName(共享访问名),使用 Set-Printer 修改现有打印机共享属性。1. 开启打印机共享 + 设置共享名
# 将「车间HP激光打印机」开启共享,共享名 Shop_HP_Printer
Set-Printer -Name "车间HP激光打印机" -Shared $true -ShareName "Shop_HP_Printer"
2. 关闭打印机共享
Set-Printer -Name "车间HP激光打印机" -Shared $false
3. 修改已有打印机共享名称
Set-Printer -Name "车间HP激光打印机" -ShareName "Workshop_HP01"
4. 批量批量开启所有本地打印机共享
Get-Printer | Where PortName -match "^IP_" | ForEach-Object {
Set-Printer -Name $_.Name -Shared $true -ShareName ("Share_"+$_.Name)
}
配套查看验证命令
Get-Printer -Name "车间HP激光打印机" | Select Name,Shared,ShareName
前置依赖
Set-NetFirewallRule -Name "SPOOLSS-In-TCP" -Enabled True
一、PowerShell 完整安装网络打印机标准流程
Add-PrinterDriver、Add-PrinterPort、Add-Printer。1. 前置:安装打印驱动
# 查看本机已有驱动(确认驱动名称)
Get-PrinterDriver
# 从本地INF文件安装驱动
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\hpljm404.inf"
2. 创建 TCP 网络打印端口
# 创建IP端口,端口名自定义,填入打印机IP
Add-PrinterPort -Name "IP_192.168.1.200" -PrinterHostAddress "192.168.1.200"
3. 新建打印机(绑定端口与驱动)
Add-Printer `
-Name "办公HP激光打印机" `
-DriverName "HP LaserJet M404 PCL 6" `
-PortName "IP_192.168.1.200"
4. 一键完整自动化脚本(批量部署模板)
# 变量定义
$printerName = "车间打印机"
$driverName = "HP LaserJet M404 PCL 6"
$portName = "IP_192.168.1.50"
$printerIP = "192.168.1.50"
# 1. 创建端口
Add-PrinterPort -Name $portName -PrinterHostAddress $printerIP
# 2. 生成打印机
Add-Printer -Name $printerName -DriverName $driverName -PortName $portName
# 可选:安装后直接设为默认打印机
Set-Printer -Name $printerName -Default $true
5. 客户端连接共享打印机(无需手动创建端口)
# 连接打印服务器共享打印机
Add-PrinterConnection -Name "\\PrintSrv01\ShopPrinter"
二、PowerShell 删除打印机 Remove-Printer
基础单台删除
# 删除指定名称打印机,无确认弹窗
Remove-Printer -Name "办公HP激光打印机" -Confirm:$false
批量删除场景
# 删除所有HP品牌打印机
Get-Printer | Where Name -match "HP" | Remove-Printer -Confirm:$false
# 删除所有网络TCP打印机
Get-Printer | Where PortName -match "^IP_" | Remove-Printer -Confirm:$false
完整清理(打印机 + 闲置端口)
$targetPrinter = "办公HP激光打印机"
$port = Get-Printer -Name $targetPrinter | Select -ExpandProperty PortName
Remove-Printer -Name $targetPrinter -Confirm:$false
Remove-PrinterPort -Name $port -Confirm:$false
注意事项
- 仅删除打印机实例,不会自动卸载打印驱动;
- 共享打印机需先关闭共享再删除,避免占用报错;
- 共享客户端连接打印机可直接删除,不影响服务器端设备。
三、PowerShell 设置默认打印机 Set-Printer
1. 单台指定打印机设为默认
Set-Printer -Name "办公HP激光打印机" -Default $true
2. 取消默认打印机(无单独取消参数,直接指定另一台即可)
# 将其他设备设为默认,自动取消原有默认
Set-Printer -Name "黑白复印机" -Default $true
3. 批量逻辑:将匹配名称的打印机设为默认
# 把名称包含"HP"的第一台打印机设为默认
$hpPrinter = Get-Printer | Where Name -match "HP" | Select -First 1
if ($hpPrinter) {
Set-Printer -Name $hpPrinter.Name -Default $true
}
4. 验证默认打印机是否生效
Get-Printer | Where Default -eq $true | Select Name,Default
一、PowerShell 查看已安装打印机驱动(Get-PrinterDriver)
Get-PrinterDriver,用于查询本机所有打印驱动,安装打印机前必用,确认驱动名称。1. 基础全量查看
# 列出系统全部打印驱动完整信息
Get-PrinterDriver
2. 精简核心字段(厂商、驱动名、版本、架构)
Get-PrinterDriver | Select Name,Manufacturer,DriverVersion,Architecture
3. 过滤筛选场景
筛选指定品牌驱动(HP / 佳能)
# 只显示HP驱动
Get-PrinterDriver | Where Name -match "HP"
# 只显示佳能驱动
Get-PrinterDriver | Where Manufacturer -match "Canon"
筛选 64 位驱动
Get-PrinterDriver | Where Architecture -eq "x64"
4. 导出驱动清单备份
Get-PrinterDriver | Select Name,Manufacturer,DriverVersion,Architecture | Export-Csv C:\driver_list.csv -NoTypeInformation -Encoding UTF8
二、PowerShell 删除打印机(Remove-Printer)
1. 单台直接删除(无确认弹窗)
Remove-Printer -Name "办公HP激光打印机" -Confirm:$false
2. 批量删除匹配条件打印机
删除所有 HP 打印机
Get-Printer | Where Name -match "HP" | Remove-Printer -Confirm:$false
删除所有 TCP 网络打印机
Get-Printer | Where PortName -match "^IP_" | Remove-Printer -Confirm:$false
3. 完整清理流程(打印机 + 闲置端口)
$printerName = "办公HP激光打印机"
# 获取打印机绑定端口
$port = Get-Printer -Name $printerName | Select -ExpandProperty PortName
# 删除打印机
Remove-Printer -Name $printerName -Confirm:$false
# 删除端口
Remove-PrinterPort -Name $port -Confirm:$false
关键注意点
Remove-Printer仅删除打印机实例,不会自动卸载打印驱动;卸载驱动需单独执行Remove-PrinterDriver;- 共享打印机建议先关闭共享再删除,避免端口占用报错;
- 客户端网络共享打印机可直接删除,不影响打印服务器端设备。
三、PowerShell 配置打印机默认设置(Set-Printer + Set-PrinterConfiguration)
(一)基础全局默认属性(Set-Printer)
1. 将打印机设为系统默认打印机
Set-Printer -Name "办公HP激光打印机" -Default $true
2. 修改打印机绑定端口
Set-Printer -Name "办公HP激光打印机" -PortName "IP_192.168.1.60"
3. 开启 / 关闭打印机共享、修改共享名
# 开启共享,自定义共享名称
Set-Printer -Name "办公HP激光打印机" -Shared $true -ShareName "Office_HP01"
# 关闭共享
Set-Printer -Name "办公HP激光打印机" -Shared $false
(二)打印首选项默认配置(Set-PrinterConfiguration)
1. 查看当前默认首选项
Get-PrinterConfiguration -PrinterName "办公HP激光打印机"
2. 配置默认 A4 纸张、双面打印、黑白模式
Set-PrinterConfiguration `
-PrinterName "办公HP激光打印机" `
-PaperSize A4 `
-Duplex TwoSidedLongEdge `
-Color $false `
-Copies 1
常用参数说明
| 参数 | 作用 | 可选值 |
|---|---|---|
-PaperSize |
默认纸张 | A4、Letter、A3、B5 |
-Duplex |
双面打印 | OneSided(单面)、TwoSidedLongEdge(长边翻转)、TwoSidedShortEdge(短边翻转) |
-Color |
色彩模式 | $true 彩色 / $false 黑白 |
-Copies |
默认打印份数 | 数字 |
-Resolution |
打印分辨率 | 300、600、1200 |
(三)批量统一配置所有打印机默认双面打印
Get-Printer | ForEach-Object {
Set-PrinterConfiguration -PrinterName $_.Name -Duplex TwoSidedLongEdge
}
(四)验证配置是否生效
# 查看基础属性
Get-Printer -Name "办公HP激光打印机" | Select Name,Default,Shared,ShareName
# 查看打印首选项
Get-PrinterConfiguration -PrinterName "办公HP激光打印机"
一、PowerShell 安装打印机驱动(Add-PrinterDriver)
Add-PrinterDriver,必须管理员权限运行,依赖打印后台服务Spooler。1. 本地 INF 驱动包安装(离线驱动文件)
# 参数说明:-Name 驱动完整名称;-InfPath 驱动inf文件路径
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\PrintDrivers\hpljm404.inf"
2. 查看系统已有驱动(获取准确驱动名)
Get-PrinterDriver | Select Name,Manufacturer
3. 批量批量加载文件夹内全部驱动
# 遍历驱动目录所有inf,批量安装
Get-ChildItem D:\PrintDrivers -Recurse -Filter *.inf | ForEach-Object {
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath $_.FullName
}
4. 在线 Windows 更新驱动安装
Add-PrinterDriver -Name "HP Universal Printing PCL 6"
配套卸载驱动命令
Remove-PrinterDriver -Name "HP LaserJet M404 PCL 6"
二、PowerShell 创建打印端口(Add-PrinterPort)
1. 创建 TCP 网络打印端口(主流局域网打印机)
# -Name 自定义端口标识;-PrinterHostAddress 打印机静态IP
Add-PrinterPort -Name "IP_192.168.1.105" -PrinterHostAddress "192.168.1.105"
2. 创建 WSD 无线打印机端口(WiFi 网络打印机)
# 先扫描局域网WSD设备获取设备地址
Get-WSDDevice
# 基于WSD地址创建端口
Add-PrinterPort -Name "WSD_HP01" -WSDAddress "http://192.168.1.105/wsd/print"
3. 查看本机全部已创建端口(校验是否创建成功)
Get-PrinterPort | Select Name,PrinterHostAddress,PortNumber
4. 删除闲置端口
Remove-PrinterPort -Name "IP_192.168.1.105" -Confirm:$false
三、PowerShell 删除打印机(Remove-Printer)
1. 删除单台指定打印机
# -Confirm:$false 跳过确认弹窗,静默删除
Remove-Printer -Name "车间HP激光打印机" -Confirm:$false
2. 批量条件删除
删除所有 HP 品牌打印机
Get-Printer | Where Name -match "HP" | Remove-Printer -Confirm:$false
删除所有 TCP 网络打印机
Get-Printer | Where PortName -match "^IP_" | Remove-Printer -Confirm:$false
3. 完整清理流程(打印机 + 绑定端口)
$targetPrinter = "车间HP激光打印机"
# 获取打印机绑定端口名称
$bindPort = Get-Printer -Name $targetPrinter | Select -ExpandProperty PortName
# 删除打印机
Remove-Printer -Name $targetPrinter -Confirm:$false
# 删除闲置端口
Remove-PrinterPort -Name $bindPort -Confirm:$false
关键注意事项
Remove-Printer只删除打印机实例,不会自动卸载打印驱动;- 共享打印机建议先关闭共享再执行删除,避免端口占用报错;
- 客户端连接的共享网络打印机可直接删除,不影响打印服务器设备。
一、PowerShell 查看打印机驱动版本信息
Get-PrinterDriver,内置字段 DriverVersion、Manufacturer、Name、Architecture 可直接读取版本。1. 基础查看(完整信息,含版本)
# 列出所有驱动,包含版本、厂商、驱动名、系统架构
Get-PrinterDriver | Select Name,Manufacturer,DriverVersion,Architecture
2. 筛选指定品牌驱动版本(例:HP)
Get-PrinterDriver | Where Name -match "HP" | Select Name,DriverVersion
3. 导出全部驱动版本清单到 CSV 备份
Get-PrinterDriver | Select Name,Manufacturer,DriverVersion,Architecture | Export-Csv C:\PrintDriver_Version_List.csv -NoTypeInformation -Encoding UTF8
4. 结合打印机实例查看当前使用驱动版本
# 查看打印机+对应驱动名
Get-Printer | Select Name,DriverName
# 单独查询某台打印机驱动版本
$drvName = (Get-Printer -Name "办公HP打印机").DriverName
Get-PrinterDriver -Name $drvName | Select Name,DriverVersion
二、PowerShell 卸载打印机驱动 Remove-PrinterDriver
前置约束
- 必须先删除所有使用该驱动的打印机,否则驱动占用无法卸载;
- 需要管理员权限;
- 仅卸载驱动文件包,不会删除打印端口。
1. 单驱动卸载
# 填入完整驱动名称
Remove-PrinterDriver -Name "HP LaserJet M404 PCL 6" -Confirm:$false
2. 批量卸载匹配名称的驱动
# 卸载所有HP相关驱动
Get-PrinterDriver | Where Name -match "HP" | Remove-PrinterDriver -Confirm:$false
完整清理标准流程(打印机→端口→驱动)
$printerName = "办公HP打印机"
# 1. 获取绑定端口与驱动名
$info = Get-Printer -Name $printerName | Select PortName,DriverName
# 2. 删除打印机
Remove-Printer -Name $printerName -Confirm:$false
# 3. 删除闲置端口
Remove-PrinterPort -Name $info.PortName -Confirm:$false
# 4. 卸载驱动
Remove-PrinterDriver -Name $info.DriverName -Confirm:$false
三、PowerShell 配置打印机端口(全生命周期:创建 / 查看 / 修改 / 删除)
Add-PrinterPort(创建)、Get-PrinterPort(查看)、Remove-PrinterPort(删除),无单独修改端口参数,修改 IP 需重建端口并更换打印机绑定。1. 创建 TCP 网络打印端口(最常用,局域网打印机)
# -Name:自定义端口标识;-PrinterHostAddress:打印机静态IP
Add-PrinterPort -Name "IP_192.168.1.100" -PrinterHostAddress "192.168.1.100"
2. 创建 WSD 无线 WiFi 打印机端口
# 先扫描局域网WSD设备
Get-WSDDevice
# 创建WSD端口
Add-PrinterPort -Name "WSD_Canon01" -WSDAddress "http://192.168.1.100/wsd/print"
3. 查看本机全部端口(校验 IP、名称)
Get-PrinterPort | Select Name,PrinterHostAddress,PortNumber
4. 修改打印机绑定的端口(更换 IP 操作)
- 新建目标 IP 端口;
- 使用
Set-Printer修改打印机绑定端口:
# 新建新IP端口
Add-PrinterPort -Name "IP_192.168.1.101" -PrinterHostAddress "192.168.1.101"
# 将打印机切换至新端口
Set-Printer -Name "办公HP打印机" -PortName "IP_192.168.1.101"
# 删除旧闲置端口
Remove-PrinterPort -Name "IP_192.168.1.100" -Confirm:$false
5. 删除闲置端口
Remove-PrinterPort -Name "IP_192.168.1.100" -Confirm:$false
6. 完整部署链路(端口 + 驱动 + 打印机)
# 1. 安装驱动
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\hp.inf"
# 2. 创建打印端口
Add-PrinterPort -Name "IP_192.168.1.100" -PrinterHostAddress "192.168.1.100"
# 3. 绑定驱动端口生成打印机
Add-Printer -Name "办公HP打印机" -DriverName "HP LaserJet M404 PCL 6" -PortName "IP_192.168.1.100"
一、PowerShell 查看打印机名称
Get-Printer,Name 字段即为打印机显示名称。1. 仅输出所有打印机名称(最简)
Get-Printer | Select -ExpandProperty Name
2. 查看名称 + 绑定端口 + 驱动对照
Get-Printer | Select Name,PortName,DriverName
3. 模糊匹配查找指定打印机名称
# 查找名称包含 HP 的打印机
Get-Printer | Where Name -match "HP" | Select Name
# 精确匹配单台打印机
Get-Printer -Name "车间激光打印机" | Select Name
4. 获取默认打印机名称
Get-Printer | Where Default -eq $true | Select -ExpandProperty Name
二、筛选指定架构的打印机驱动版本
Architecture,可选值 x64、x86、ARM64,命令基于 Get-PrinterDriver。1. 只筛选 64 位 (x64) 驱动,展示名称、版本、架构
Get-PrinterDriver | Where Architecture -eq "x64" | Select Name,DriverVersion,Architecture
2. 筛选 32 位 (x86) 驱动
Get-PrinterDriver | Where Architecture -eq "x86" | Select Name,DriverVersion,Manufacturer
3. 筛选 ARM64 架构驱动(Surface/ARM 笔记本)
Get-PrinterDriver | Where Architecture -eq "ARM64"
4. 多条件组合:x64 + HP 厂商驱动
Get-PrinterDriver | Where { $_.Architecture -eq "x64" -and $_.Manufacturer -match "HP" } | Select Name,DriverVersion
三、将打印机驱动版本信息导出为各类格式
前置基础对象
# 基础驱动数据集
$driverData = Get-PrinterDriver | Select Name,Manufacturer,DriverVersion,Architecture
1. 导出 CSV(Excel 可直接打开,运维最常用)
$driverData | Export-Csv C:\PrintDriver_List.csv -NoTypeInformation -Encoding UTF8
2. 导出纯文本 TXT
$driverData | Out-File C:\PrintDriver_List.txt -Encoding UTF8
3. 导出 JSON(程序读取、跨设备迁移)
$driverData | ConvertTo-Json | Out-File C:\PrintDriver_List.json -Encoding UTF8
4. 导出 XML
$driverData | Export-Clixml C:\PrintDriver_List.xml
5. 复制结果到剪贴板(无需保存文件,直接粘贴文档)
$driverData | Clip
6. 导出 HTML 可视化报表
$driverData | ConvertTo-Html -Title "打印机驱动清单" | Out-File C:\DriverReport.html
一、筛选指定架构的打印机驱动版本
Architecture 支持值:x64、x86、ARM64,核心命令 Get-PrinterDriver。1. 筛选 64 位 x64 驱动(办公电脑主流)
Get-PrinterDriver | Where Architecture -eq "x64" | Select Name,Manufacturer,DriverVersion,Architecture
2. 筛选 32 位 x86 兼容驱动
Get-PrinterDriver | Where Architecture -eq "x86" | Select Name,DriverVersion
3. 筛选 ARM64(Surface、ARM 笔记本)
Get-PrinterDriver | Where Architecture -eq "ARM64"
4. 多条件组合:x64 + 厂商过滤
# 只查看HP品牌64位驱动
Get-PrinterDriver | Where { $_.Architecture -eq "x64" -and $_.Manufacturer -match "HP" }
二、安装指定架构的打印机驱动(Add-PrinterDriver)
1. 基础安装(自动匹配当前系统架构)
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\hpljm404.inf"
2. 手动指定架构安装(同时安装 x86/x64 双架构)
-Architecture 参数强制指定架构,适用于打印服务器安装多架构驱动:# 安装64位驱动
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\hpljm404.inf" -Architecture x64
# 额外安装32位兼容驱动
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\x86\hpljm404.inf" -Architecture x86
3. 批量安装文件夹内多架构驱动
Get-ChildItem D:\PrintDrivers -Recurse -Filter *.inf | ForEach-Object {
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath $_.FullName -Architecture x64
}
补充:查看已安装驱动架构校验
Get-PrinterDriver | Select Name,Architecture
三、查看打印机驱动完整详细信息
1. 输出驱动全部原生属性(完整详情)
# 单驱动完整详情
Get-PrinterDriver -Name "HP LaserJet M404 PCL 6" | Format-List *
# 全部驱动完整详情
Get-PrinterDriver | Format-List *
2. 自定义关键详细字段视图(运维常用)
Get-PrinterDriver | Select `
Name,
Manufacturer,
DriverVersion,
Architecture,
DriverPath,
InfPath,
ConfigFile
3. 结合打印机查看当前使用驱动完整详情
# 获取打印机绑定驱动名称
$drv = (Get-Printer -Name "办公HP打印机").DriverName
# 输出该驱动完整详情
Get-PrinterDriver -Name $drv | Format-List *
关键字段说明
| 字段 | 含义 |
|---|---|
| Name | 驱动显示名称 |
| Manufacturer | 驱动厂商 |
| DriverVersion | 驱动版本号 |
| Architecture | 系统架构 |
| DriverPath | 系统加载的驱动 dll 路径 |
| InfPath | 原始安装 INF 文件路径 |
| ConfigFile | 打印配置文件路径 |
一、PowerShell 安装打印机驱动(Add-PrinterDriver)
1. 基础离线安装(本地 INF 驱动文件)
# 先查看本机已有驱动,确认目标驱动完整名称
Get-PrinterDriver | Select Name,Manufacturer
# 安装单架构驱动(自动匹配系统当前架构)
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\PrintDrivers\hpljm404.inf"
2. 指定架构安装(打印服务器多架构兼容)
-Architecture 手动指定 x64/x86/ARM64,同时安装 32/64 位驱动供客户端使用:# 安装64位驱动
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\x64\hpljm404.inf" -Architecture x64
# 额外安装32位兼容驱动
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\x86\hpljm404.inf" -Architecture x86
3. 批量批量加载文件夹内全部 INF 驱动
Get-ChildItem D:\PrintDrivers -Recurse -Filter *.inf | ForEach-Object {
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath $_.FullName -Architecture x64
}
4. 在线通用驱动(无需本地 INF)
Add-PrinterDriver -Name "HP Universal Printing PCL 6"
二、PowerShell 查看打印机运行状态
Status,命令 Get-Printer,可直观查看就绪、错误、离线、卡纸等状态。1. 最简查看:打印机名 + 状态
Get-Printer | Select Name,Status
2. 完整运维视图(名称、状态、端口、驱动、默认、共享)
Get-Printer | Select Name,Status,PortName,DriverName,Default,Shared
3. 筛选异常故障打印机(非就绪设备)
Get-Printer | Where Status -ne "Ready" | Select Name,Status
4. 查看单台指定打印机详细状态
Get-Printer -Name "办公HP激光打印机" | Format-List Name,Status,PortName,DriverName
Status 常见状态值说明
Ready:正常就绪可打印Offline:打印机离线、网络断开Error:通用故障(卡纸、缺纸、缺墨、端口故障)Printing:正在执行打印任务Paused:打印队列已暂停
三、PowerShell 删除打印机 Remove-Printer
1. 单台静默删除(无确认弹窗)
Remove-Printer -Name "办公HP激光打印机" -Confirm:$false
2. 批量条件删除
删除所有 HP 品牌打印机
Get-Printer | Where Name -match "HP" | Remove-Printer -Confirm:$false
删除所有 TCP 网络打印机(端口名以 IP_开头)
Get-Printer | Where PortName -match "^IP_" | Remove-Printer -Confirm:$false
3. 完整清理流程(打印机 + 闲置端口)
$printerName = "办公HP激光打印机"
# 获取绑定端口
$bindPort = Get-Printer -Name $printerName | Select -ExpandProperty PortName
# 删除打印机
Remove-Printer -Name $printerName -Confirm:$false
# 删除不再使用的打印端口
Remove-PrinterPort -Name $bindPort -Confirm:$false
关键注意点
Remove-Printer仅删除打印机实例,不会卸载打印驱动;卸载驱动需单独执行Remove-PrinterDriver;- 共享打印机建议先关闭共享再删除,避免端口占用报错;
- 客户端连接的共享网络打印机可直接删除,不影响打印服务器端设备。
一、PowerShell 查看打印机驱动详细信息
Get-PrinterDriver1. 单款驱动完整全量属性
Get-PrinterDriver -Name "HP LaserJet M404 PCL 6" | Format-List *
2. 所有驱动精简关键字段(运维清单视图)
Get-PrinterDriver | Select Name,Manufacturer,DriverVersion,Architecture,InfPath,DriverPath,ConfigFile
3. 结合已安装打印机反向查看当前使用驱动详情
# 获取打印机绑定驱动名称
$drvName = (Get-Printer -Name "办公激光打印机").DriverName
# 输出完整驱动详情
Get-PrinterDriver -Name $drvName | Format-List *
关键字段释义
Name:驱动完整显示名称(安装时必须完全匹配)Manufacturer:硬件厂商DriverVersion:驱动版本号Architecture:系统架构 x64/x86/ARM64InfPath:原始安装 INF 文件路径DriverPath:系统加载的驱动 dll 文件路径
二、PowerShell 添加(新建)打印机完整流程
前置三步:安装驱动 → 创建打印端口 → 绑定生成打印机
1. 安装打印驱动
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\hpljm404.inf"
2. 创建 TCP 网络打印端口(局域网打印机)
Add-PrinterPort -Name "IP_192.168.1.100" -PrinterHostAddress "192.168.1.100"
3. Add-Printer 新建打印机(核心添加命令)
Add-Printer `
-Name "车间HP激光打印机" `
-DriverName "HP LaserJet M404 PCL 6" `
-PortName "IP_192.168.1.100"
可选附加参数
-Default $true:创建后直接设为系统默认打印机-Shared $true -ShareName "Shop_HP":创建并开启共享
客户端连接共享打印机(无需创建本地端口)
Add-PrinterConnection -Name "\\PrintServer01\Shop_HP"
三、安装驱动提示「找不到驱动程序包」完整解决办法
-Name 驱动名称与 INF 内部定义名称不匹配、INF 路径错误、架构不匹配、驱动包损坏、权限不足。1. 核对 INF 内真实驱动名称(最常见故障)
- 右键 INF 文件 → 打开,查找
DriverName/Model段内完整名称; - 使用
Get-PrinterDriver查看系统已存在驱动名称作为参照; - 命令中
-Name必须和 INF 内部名称完全一致,不能简写。错误示例:INF 内是HP LaserJet M404 PCL 6,简写HP M404会报错。
2. 校验 InfPath 路径正确性
- 路径不能包含中文空格、特殊符号,路径用绝对路径;
- 确认路径指向打印机对应架构 INF(x64 系统不能直接用 x86 INF);
# 校验文件是否存在
Test-Path "D:\Drivers\hpljm404.inf"
False代表路径错误 / 文件缺失。3. 指定匹配架构安装
-Architecture x86:Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath "D:\Drivers\x86\hpljm404.inf" -Architecture x86
4. 权限与系统服务修复
- PowerShell 右键「以管理员身份运行」,普通用户无驱动安装权限;
- 打印后台服务必须正常运行:
sc query spooler
net stop spooler && net start spooler
5. 驱动包修复
- 重新官网下载完整驱动安装包,解压后再读取 INF;压缩包未完整解压会缺失依赖 dll;
- 通用打印驱动备选方案,无需本地 INF:
Add-PrinterDriver -Name "HP Universal Printing PCL 6"
6. 分步排查脚本
#1 校验文件存在
$inf = "D:\Drivers\hpljm404.inf"
if(-not (Test-Path $inf)){Write-Host "INF文件不存在"}
#2 管理员校验
#3 指定架构重试安装
Add-PrinterDriver -Name "HP LaserJet M404 PCL 6" -InfPath $inf -Architecture x64
在 PowerShell 中,Add-PrinterPort 和 Add-Printer 命令用于管理打印机的端口和打印机本身。以下是这两个命令按功能分类的表格,帮助理解它们的作用和使用方式:
PowerShell 命令功能分类表:Add-PrinterPort 和 Add-Printer
| 命令 | 功能描述 | 参数 | 示例 |
|---|---|---|---|
| Add-PrinterPort | 用于添加新的打印机端口。这个命令可以用来创建一个新的打印机端口,通常用于网络打印机或本地打印机连接。 | -Name(端口名称) -PrinterHostAddress(打印机主机地址) -PortType(端口类型) |
Add-PrinterPort -Name "IP_192.168.1.100" -PrinterHostAddress "192.168.1.100" -PortType "StandardTCPIPPort" |
| Add-Printer | 用于添加新的打印机。可以通过指定打印机名称、端口以及打印机驱动程序来添加新的打印机设备。 | -Name(打印机名称) -PortName(打印机端口) -DriverName(打印机驱动) |
Add-Printer -Name "HP LaserJet Pro" -PortName "IP_192.168.1.100" -DriverName "HP Universal Printing PCL 6" |
详细功能说明
1. Add-PrinterPort
Add-PrinterPort 命令用于创建新的打印机端口。这对于配置打印机的网络连接非常重要,尤其是当你需要为网络打印机添加一个 TCP/IP 端口时。创建端口后,可以将其分配给特定的打印机。
-
参数说明:
-Name: 指定打印机端口的名称。-PrinterHostAddress: 对于网络打印机,指定打印机的 IP 地址。-PortType: 设置端口类型,通常是StandardTCPIPPort或其他类型的端口(例如串口、并口等)。
-
示例:
powershellCopy CodeAdd-PrinterPort -Name "IP_192.168.1.100" -PrinterHostAddress "192.168.1.100" -PortType "StandardTCPIPPort"这个命令会创建一个名为
IP_192.168.1.100的端口,并将其指向 IP 地址为192.168.1.100的打印机。
2. Add-Printer
Add-Printer 命令用于添加新打印机。通过指定打印机名称、端口和驱动程序,用户可以在计算机上安装新的打印机。这个命令通常在设置新打印机时使用。
-
参数说明:
-Name: 指定打印机的名称。-PortName: 指定打印机将要使用的端口。通常这个端口是通过Add-PrinterPort命令先前创建的。-DriverName: 指定打印机驱动程序的名称,确保打印机能够正常工作。
-
示例:
powershellCopy CodeAdd-Printer -Name "HP LaserJet Pro" -PortName "IP_192.168.1.100" -DriverName "HP Universal Printing PCL 6"这个命令将名为
HP LaserJet Pro的打印机添加到计算机,并将其连接到 IP 地址为192.168.1.100的打印机端口,使用HP Universal Printing PCL 6驱动程序。
| 命令 | 功能 | 用法 |
|---|---|---|
Add-PrinterPort |
添加新的打印机端口 | 用于配置打印机连接的端口,通常适用于网络打印机。 |
Add-Printer |
添加新的打印机 | 用于安装打印机,并将其连接到已有的端口,通常需要指定打印机驱动。 |
这两个命令通常是配合使用的:首先使用 Add-PrinterPort 创建一个新的打印机端口,然后使用 Add-Printer 将打印机连接到该端口。
PowerShell 中 Add-PrinterPort 和 Add-Printer 命令的区别对比表格:
| 特性 | Add-PrinterPort | Add-Printer |
|---|---|---|
| 命令作用 | 添加新的打印机端口,用于定义打印机的连接方式(如网络端口、串口等)。 | 添加新的打印机,允许指定打印机的名称、端口、驱动程序等。 |
| 主要用途 | 配置打印机连接端口(例如,设置网络打印机的 IP 地址或其他连接类型)。 | 将新的打印机设备添加到系统,绑定打印机端口并安装驱动程序。 |
| 所需参数 | -Name(端口名称) -PrinterHostAddress(打印机主机地址) -PortType(端口类型) |
-Name(打印机名称) -PortName(打印机端口名称) -DriverName(打印机驱动程序) |
| 示例 | Add-PrinterPort -Name "IP_192.168.1.100" -PrinterHostAddress "192.168.1.100" -PortType "StandardTCPIPPort" |
Add-Printer -Name "HP LaserJet Pro" -PortName "IP_192.168.1.100" -DriverName "HP Universal Printing PCL 6" |
| 用途场景 | 用于设置新的打印机端口,特别是在需要网络打印机或特定连接类型时使用。 | 用于安装打印机,并绑定到已创建的打印机端口。 |
| 支持的端口类型 | 主要支持各种端口类型,如 StandardTCPIPPort、USB、LPT 等。 |
通过指定端口名来关联已创建的端口,通常是 Add-PrinterPort 创建的端口。 |
| 执行前提 | 必须先定义打印机的端口,尤其是在网络打印机或特定连接方式下。 | 必须先创建或有现成的打印机端口,通常是通过 Add-PrinterPort 创建的端口。 |
| 输出 | 创建一个新的打印机端口。 | 安装并配置一个新的打印机。 |
| 常见应用 | 配置网络打印机、串口打印机、并口打印机等连接。 | 将新的打印机安装到 Windows 系统,并确保其工作正常。 |
Add-PrinterPort主要是用来创建打印机端口,配置打印机如何连接到计算机(如网络打印机的 IP 地址)。Add-Printer主要用于添加新的打印机,指定打印机名称、端口和驱动程序,完成打印机的安装。
这两个命令通常是配合使用的:先用 Add-PrinterPort 创建一个端口,再用 Add-Printer 将打印机连接到该端口。
通过 PowerShell 添加网络打印机并创建一个标准 TCP/IP 端口,您可以使用 Add-PrinterPort 和 Add-Printer cmdlet。以下是一个详细的示例,演示了如何创建 TCP/IP 端口并添加网络打印机。
步骤
- 创建 TCP/IP 端口
- 添加打印机
示例代码
# 设置打印机的 IP 地址和打印机名称
$printerIpAddress = "192.168.1.100" # 替换为实际的打印机 IP 地址
$printerName = "MyNetworkPrinter" # 替换为打印机名称
# 创建 TCP/IP 端口
$portName = "$printerIpAddress Port" # 为端口命名
$port = Get-PrinterPort -Name $portName -ErrorAction SilentlyContinue
if (-not $port) {
# 如果端口不存在,则创建端口
Add-PrinterPort -Name $portName -PrinterHostAddress $printerIpAddress
}
# 添加网络打印机
Add-Printer -Name $printerName -PortName $portName -DriverName "YourPrinterDriverName" -Comment "Network Printer"
详细说明
-
创建 TCP/IP 端口
Add-PrinterPort用于创建一个新的 TCP/IP 打印机端口。使用-PrinterHostAddress参数指定打印机的 IP 地址。
-
添加打印机
Add-Printer用于添加打印机。您需要指定打印机名称、端口名称和驱动程序名称(替换"YourPrinterDriverName"为您实际的打印机驱动程序名称)。
检查和验证
在添加打印机之后,您可以使用以下命令来验证打印机是否已成功添加:
Get-Printer | Where-Object { $_.Name -eq $printerName }
注意事项
- 确保以管理员身份运行 PowerShell,以便执行添加打印机和端口的命令。
- 确保打印机 IP 地址是正确的,并且网络打印机已连接到网络。
- 如果您不确定打印机驱动程序的名称,可以使用以下命令查看已安装的打印机驱动程序:
Get-PrinterDriver
通过上述步骤,您将能够成功地创建 TCP/IP 端口并添加网络打印机。
使用 PowerShell 安装 Windows 网络打印机,您可以通过以下步骤来实现。下面提供了一些常用的 PowerShell 命令,用于添加网络打印机。
1. 安装打印机的基本命令
# 设置打印机的网络路径
$printerPath = "\\ServerName\PrinterName"
# 添加网络打印机
Add-Printer -ConnectionName $printerPath
2. 安装打印机驱动程序(如果需要)
在某些情况下,您可能需要先安装打印机驱动程序。以下是如何通过 PowerShell 安装打印机驱动程序的示例:
# 设置驱动程序名称
$driverName = "PrinterDriverName"
# 安装打印机驱动程序(需将此替换为实际驱动程序文件的路径)
Add-PrinterDriver -Name $driverName
3. 完整示例
以下是一个完整的 PowerShell 脚本示例,展示如何安装网络打印机并确保驱动程序被正确安装:
# 设置打印机路径和驱动程序名称
$printerPath = "\\ServerName\PrinterName"
$driverName = "PrinterDriverName"
# 检查驱动程序是否已安装
if (-not (Get-PrinterDriver -Name $driverName -ErrorAction SilentlyContinue)) {
# 安装打印机驱动程序
Add-PrinterDriver -Name $driverName
}
# 添加网络打印机
Add-Printer -ConnectionName $printerPath
4. 查看已安装的打印机
您可以使用以下命令查看已安装的打印机:
Get-Printer
5. 注意事项
- 确保以管理员身份运行 PowerShell,因为某些命令需要管理员权限。
- 替换
\\ServerName\PrinterName和PrinterDriverName为您的实际网络打印机路径和驱动程序名称。 - 如果网络打印机未正确添加,请确保网络连接正常,并且您有适当的访问权限。
通过这些命令,您应该能够成功地在 Windows 系统中安装网络打印机。

浙公网安备 33010602011771号