我希望能够在 Windows 服务器(本例中为 2003)上获取所有 Windows 打印机设备的默认页面大小。
这不应该是 Win32_Printer WMI 对象上的 DefaultPageSize 属性,而是通过打印机驱动程序设置的。
打印机驱动程序是 Adobe Generic PostScript Driver。
我希望能够在 Windows 服务器(本例中为 2003)上获取所有 Windows 打印机设备的默认页面大小。
这不应该是 Win32_Printer WMI 对象上的 DefaultPageSize 属性,而是通过打印机驱动程序设置的。
打印机驱动程序是 Adobe Generic PostScript Driver。
打印驱动程序提供的打印机配置位于注册表中
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 双字节字符。
对于每台打印机,应该有许多属性,包括:
注意:这是检索此信息的快速方法。如果有更正确的方法可以做到这一点,或者您想提出其他建议来整理它,我将不胜感激。
另外,如果注册表的这个区域有资源或规范,请告诉我!