列出Windows打印机设备的默认页面大小

时间:2013-05-17 05:09:11

标签: windows powershell printing wmi windows-server

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

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

打印机驱动程序是Adobe Generic PostScript驱动程序。

1 个答案:

答案 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双字节字符。

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

  • 名称
  • 分辨率
  • 每页
  • PageRegion
  • InputSlot

注意:这是检索此信息的快速入侵。如果有更正确的方法可以做到这一点,或者你想建议别的东西来整理它,我会非常感激。

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