重要
设备元数据已弃用,并将在 Windows 的将来版本中删除。 有关替代功能的信息,请参阅驱动程序包容器元数据。
按照本文中的指南设置打印支持应用并将其与打印机相关联。
从 Windows 11 SDK (22000.1) 开始,打印支持应用 (PSA) 是开发适用于打印机的 UWP 应用的建议方法。 要为打印设备开发打印支持应用,请下载并安装 Windows 11 SDK (22000.1)。
本文将讨论以下任务:
- 查找打印机的硬件 ID 或兼容 ID
- 准备 psa.inf 扩展 INF 文件
- 在 Windows 11 电脑上安装 psa.inf 扩展 INF 文件
- 适用于企业和商业客户的 PSA 关联替代
- 将 PSA 与通用打印配合使用
设置打印机并查找硬件 ID 或兼容 ID
打印支持应用 (PSA) 使用硬件 ID 或兼容 ID 与打印机队列相关联。
要查找打印机的硬件 ID 和兼容 ID,请执行以下步骤:
- 将 IPP 打印机连接到 Windows 11 电脑。
- 在 Windows 11 设置应用中,选择“蓝牙和设备”。
- 在“蓝牙和设备”页上,选择“打印机和扫描仪”。
- 选择 IPP 打印机。
- 在 IPP 打印机页上,选择“硬件属性”。
- 在打印机硬件属性对话框中,选择“设置”选项卡。
- 选择“设备和打印机文件夹”。
- 右键单击 IPP 打印机并从上下文菜单中选择“属性”。
- 在“硬件”选项卡上,在“设备功能”列表中选择“Microsoft IPP 类驱动程序”,然后选择“属性”按钮。
- 在“Microsoft IPP 类驱动程序属性”对话框中,选择“详细信息”选项卡。
- 在“属性”下拉列表中,选择“硬件 ID”(或“兼容 ID”)。
- 复制“值”列表中的硬件 ID 字符串(以“PSA_”开头)。 扩展 INF 或兼容 ID(不以“PSA_”开头)都需要此项。
准备 PSA 扩展 INF 文件
PSA 使用扩展 INF 文件与打印机相关联。
以下步骤创建并测试扩展 INF 文件:
- 复制如下所示的 psa.inf 示例扩展 INF 作为 INF 文件的起点。
- 使用硬件 ID 或兼容 ID 更新 psa.inf 文件中的 PrinterHardwareId。
- 更新 PSA 应用程序的 PackageFamilyName 和 AUMID (AppUserModeId)。
- 创建目录文件。
- 对 psa.cat 文件示例扩展 INF 进行签名。
psa.inf 示例扩展 INF 文件
[Version]
Signature = "$WINDOWS NT$"
Class = Extension
ClassGuid = {e2f84ce7-8efa-411c-aa69-97454ca4cb57}
Provider = %ManufacturerName%
ExtensionId = {D4D9196A-105B-4B76-B693-84BD33A7A703}
CatalogFile = psa.cat
DriverVer = 05/19/2020,16.35.13.542
PnpLockdown = 1
[Manufacturer]
%ManufacturerName% = Microsoft, NTamd64.6.3
[Microsoft.NTamd64.6.3]
%Device.ExtensionDesc% = PSA-Install, %PrinterHardwareId%
%Device.ExtensionDesc% = PSA-Install, %PrinterHardwareId2%
%Device.ExtensionDesc% = PSA-Install, %PrinterHardwareId3%
[PSA-Install.NT]
AddProperty = Add-PSA-Property
[PSA-Install.NT.Software]
AddSoftware = %SoftwareName%,, Microsoft-PSA-SoftwareInstall
[Microsoft-PSA-SoftwareInstall]
SoftwareType = %MicrosoftStoreType%
SoftwareID = pfn://%PackageFamilyName%
[Add-PSA-Property]
{A925764B-88E0-426D-AFC5-B39768BE59EB}, 1, 0x12,, %AUMID%
[Strings]
ManufacturerName = "Microsoft"
SoftwareName = "Microsoft Print Support App"
Device.ExtensionDesc = "Print Support App Extension"
MicrosoftStoreType = 2
PackageFamilyName = "dd5de805-d9bb-4785-88e9-399cbff2130e_ph1m9x8skttmg"
AUMID = "dd5de805-d9bb-4785-88e9-399cbff2130e_ph1m9x8skttmg!App"
PrinterHardwareId = "PSA_CanoniP110_seriesD84F"
PrinterHardwareId2 = "PSA_XeroxAltaLink_B8055C036"
PrinterHardwareId3 = "PSA_BrotherMFC-J775DWF678"
注意
{A925764B-88E0-426D-AFC5-B39768BE59EB}, 1 是使用 INF 的打印机的 PSA 关联过程中使用的预定义属性。
在 Windows 11 上测试安装扩展 INF
如果使用自签名证书对 .cat 文件进行签名,请将根证书导入受信任的存储。
打开提升的命令提示符并运行以下命令:
pnputil.exe /add-driver psa.inf
适用于企业和商业客户的 PSA 关联替代
对于消费者和家庭用户,可从 Microsoft Store 下载 PSA,并根据打印机的硬件 ID 或兼容 ID 进行安装。 如果企业和企业客户选择使用打印机制造商提供的 PSA,则他们也支持此功能。 关联由打印机制造商在 Windows 更新上发布的扩展 INF 控制。
注意
Windows Server 不支持Microsoft应用商店。 因此,无法从 Windows Server 上的应用商店自动下载或安装打印支持应用(PSA)。 管理员必须通过旁加载(MSIX/APPX)或通过企业应用管理工具提供和安装 PSA。
如果企业和商业客户选择使用业务逻辑 PSA(例如业务线应用),可能需要覆盖扩展 INF 关联。 他们需要部署并关联具有内置业务逻辑的自定义 PSA。 业务逻辑的示例包括管理打印配额和成本,或打印策略(无颜色或无单面打印)。
注册表项可用于替代扩展 INF 中的 PSA 关联。 此注册表项方法可用于具有 Windows Print Server(指向和打印)和通用打印的企业客户。
下面是 PSA 关联方式的排名:
- 打印机制造商的自定义 v3/v4 驱动程序从 Windows 更新下载(不使用 PSA)
- 注册表项用于关联 PSA
- 扩展 INF 用于关联 PSA
- 不带 PSA 的 IPP 打印
我们建议企业客户使用 Microsoft Endpoint Manager 分发注册表项。 他们也可以使用 Endpoint Manager 来部署自定义 PSA。
注册表项定义如下:
| 项目 | 值 |
|---|---|
| 注册表项路径 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\PSA\Association |
| 名称 | 硬件 ID 或兼容 ID |
| 类型 | REG_SZ |
| 值 | PSA AUMID,例如,“dd5de805-d9bb-4785-88e9-399cbff2130e_ph1m9x8skttmg!App” |
注册表编辑器中的 PSA 项:
“编辑多字符串”对话框中的“值名称”和“值数据”:
将 PSA 与通用打印配合使用
可以将 PSA 与本机支持通用打印的打印机相关联。
重要
Microsoft 不支持使用通用打印连接器的打印机与 PSA 配合使用。 但是,在某些情况下,使用通用打印连接器的打印机可能受提供 PSA 和打印机硬件的原始设备制造商(“OEM”)的支持。 请咨询 OEM。 OEM(而不是 Microsoft)将负责与此 OEM 启用和支持相关的问题。
可以在 Windows 11“设置”应用中找到通用打印打印机的硬件 ID,类似于本地 IPP 打印机:
- 在 Windows 11 设置应用中,选择“蓝牙和设备”。
- 在“蓝牙和设备”页上,选择“打印机和扫描仪”。
- 选择通用打印打印机。
- 在“通用打印打印机”页上,选择“硬件属性”。
- 在打印机硬件属性对话框中,选择“设置”选项卡。
- 选择“设备和打印机文件夹”。
- 右键单击你的打印机并从上下文菜单中选择“属性”。
- 在“硬件”选项卡上,在“设备功能”列表中选择“通用打印类驱动程序”,然后选择“属性”按钮。
- 在属性对话框中,选择“详细信息”选项卡。
- 在“属性”下拉列表中,选择“硬件 ID”。
硬件 ID 是打印机中的打印机设备 ID IPP 属性。