更新对象 System.Printing.PrintQueue

update object System.Printing.PrintQueue

我需要更新打印机驱动程序中的属性。我能够获得正确的信息,但我不知道如何更改此值。

Add-Type -AssemblyName System.Printing

$adminServer = [System.Printing.PrintSystemDesiredAccess]::AdministrateServer
$adminPrinter = [System.Printing.PrintSystemDesiredAccess]::AdministratePrinter

$server = new-object System.Printing.LocalPrintServer $adminServer

$queues = $server.GetPrintQueues()

foreach($q in $queues){
$objPrinter = new-object System.Printing.PrintQueue -argumentList $server,$q.Name,$adminPrinter
$objPrinter.CurrentJobSettings.CurrentPrintTicket.PageMediaType
}

$objPrinter.CurrentJobSettings.CurrentPrintTicket.PageMediaType的输出是Unknown,应改为AutoSelect

有人可以帮助我吗? :)

自从我在 Windows 上使用 Printer Management 已经有一段时间了,但我相当确定您想更新 DefaultPrintTicket 而不是与当前作业关联的任何设置,所以改为这样设置:

$objPrinter.DefaultPrintTicket.PageMediaType = 'AutoSelect'

... 然后使用 PrintQueue.Commit():

在打印服务器中保留配置更改
$objPrinter.Commit()