我希望能够在Windows服务器上获得所有Windows打印机设备的默认页面大小(在本例中为2003)。
这不应该是Win32_Printer WMI对象上的DefaultPageSize属性,而是通过打印机驱动程序设置的属性。
打印机驱动程序是Adobe Generic PostScript驱动程序。
答案 0 :(得分:0)
打印驱动程序提供的打印机配置位于注册表
中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Printers\<printer name>\
这 not 似乎与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
Default DevMode属性转换为字符数组,然后转换为字符串。
在编码感知编辑器(如notepad.exe)中打开生成的文件。根据我的经验,它是unicode双字节字符。
对于每台打印机,应该有许多属性,包括:
注意:这是检索此信息的快速入侵。如果有更正确的方法可以做到这一点,或者你想建议别的东西来整理它,我会非常感激。
此外,如果注册表的这个区域有资源或规格,请告诉我!