如何通过PowerShell修改打印机的“原稿尺寸”默认设置
如何通过PowerShell修改打印机的“原稿尺寸”默认设置
我太懂你这种烦恼了!明明用户默认用A4纸,可打印机装完每次原稿尺寸都跳到A3或Letter,手动改完还不生效,大家打印前都得调一遍,既麻烦又容易出错。你之前试的几种方法没起效,大概率是没触碰到**原稿尺寸(Original Size)**这个设置的核心存储位置,咱们来试试更精准的方案:
方法一:通过WMI修改打印机默认首选项
原稿尺寸属于打印机的默认首选项配置,不是打印队列的全局配置,所以Set-PrintConfiguration没效果很正常。咱们用Win32_Printer类来直接修改默认首选项:
- 先获取目标打印机的WMI对象:
$printerName = "你的打印机名称" $printer = Get-CimInstance Win32_Printer -Filter "Name='$printerName'"
- 提取当前的默认打印配置:
$defaultConfig = $printer.GetDefaultPrinterConfiguration()
- 修改原稿尺寸为A4(注意:A4对应的数值通常是
9,不同品牌打印机可能有细微差异,你可以先查看当前$defaultConfig.PaperSize的值,再替换成A4对应的数值):
$defaultConfig.PaperSize = 9
- 保存修改后的配置:
$printer.SetDefaultPrinterConfiguration($defaultConfig)
执行完后可以重启打印服务确保生效:
Restart-Service Spooler -Force
方法二:修改注册表强制设置默认值
如果WMI方法没起效,那咱们直接改打印机驱动的注册表配置,这是很多打印机存储默认首选项的地方:
- 定位到目标打印机的注册表路径:
$regPath = "HKLM:\SYSTEM\CurrentControlSet\Control\Print\Printers\$printerName\PrinterDriverData"
- 设置默认纸张尺寸为A4(同样用数值
9,如果不确定可以先查看该路径下的现有键值,比如找DefaultPaperSize或类似名称的键):
Set-ItemProperty -Path $regPath -Name "DefaultPaperSize" -Value 9 -Type DWord
- 重启打印服务让注册表修改生效:
Restart-Service Spooler -Force
补充说明你之前的尝试为什么没生效
- 用
printbrm.exe导出导入:可能导出的配置包没有包含原稿尺寸这个细分设置,或者导入时没有覆盖用户级的默认配置; Set-PrintConfiguration:这个命令修改的是打印队列的输出纸张尺寸,不是你要改的“原稿尺寸”,所以自然没效果;Win32_PrinterConfiguration:这个类对应的是打印队列的全局配置,和用户默认首选项不是同一个层级,所以调整后也不会影响原稿尺寸的默认值。
如果是域环境批量部署,你可以把上面的PowerShell脚本做成GPO登录脚本或者用PDQ Deploy这类工具推送到所有电脑,记得替换成你的打印机名称哦!
备注:内容来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

