1

我希望能够在 Windows 服务器(本例中为 2003)上获取所有 Windows 打印机设备的默认页面大小。

这不应该是 Win32_Printer WMI 对象上的 DefaultPageSize 属性,而是通过打印机驱动程序设置的。

打印机驱动程序是 Adob​​e Generic PostScript Driver。

4

1 回答 1

0

打印驱动程序提供的打印机配置位于注册表中

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\<printer name>\

似乎与 Win32_Printer WMI 对象上的 Current 和 Default Paper Size 属性不同。

“Default DevMode”属性是设备许多设置的二进制表示。在修改窗口中打开属性以查看 ascii 表示。

为了提取这个字段,我使用了以下内容:

Get-ItemProperty -path Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\* | ForEach-Object{ $_.name, [string]::Join($null, ($_."Default DevMode" | %{ [char][int]$_;})) } > .\printer_driver_properties.txt

Default DevMode 属性转换为字符数组,然后再转换为字符串。

在编码感知编辑器(例如 notepad.exe)中打开生成的文件。根据我的经验,它是 unicode 双字节字符。

对于每台打印机,应该有许多属性,包括:

  • 姓名
  • 解析度
  • 页面大小
  • 页面区域
  • 输入槽

注意:这是检索此信息的快速方法。如果有更正确的方法可以做到这一点,或者您想提出其他建议来整理它,我将不胜感激。

另外,如果注册表的这个区域有资源或规范,请告诉我!

于 2013-05-17T05:09:10.723 回答