我希望能够获得windows服务器上所有windows打印机设备的默认页面大小(在本例中为2003)。
这不应该是DefaultPageSize WMI对象的属性,而是通过打印机驱动程序设置的属性。
打印机驱动程序是驱动程序。
发布于 2013-05-17 05:09:10
打印驱动程序提供的打印机配置位于注册表中
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\<printer name>\
这似乎与Win32_Printer WMI对象上的当前和默认纸张大小属性不同。
“默认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
将默认的DevMode属性转换为字符数组,然后将该字符数组转换为字符串。
在编码感知编辑器(如notepad.exe )中打开结果文件。根据我的经验,它是unicode双字节字符。
对于每台打印机,应该有一些属性,包括:
注意:这是一个快速的黑客来检索这些信息。如果有一个更正确的方法来做这件事,或者你想提出一些其他的东西来整理它,我会非常感激的。
此外,如果有资源或规范的这方面的注册表请让我知道!
https://stackoverflow.com/questions/16601822
复制相似问题