绕过带有Powershell的打印机驱动程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了绕过带有Powershell的打印机驱动程序相关的知识,希望对你有一定的参考价值。

使用PowerShell脚本,我们创建一个包含文本和PCL命令的文件,以产生格式正确的页面,我需要在本地连接的打印机上打印此文件。不幸的是,PowerShell cmdlet Out-Printer格式化输出并破坏了PCL命令,因此Out-Printer无法用于此作业。

将文件发送到LPR打印机可以正常工作,

$socket = new-object System.Net.Sockets.TcpClient($global:remoteHost, $global:port)
$stream = $socket.GetStream() 
$writer = new-object System.IO.StreamWriter($stream,[System.Text.Encoding]::GetEncoding(1252))
$writer.Write($str2write)
$writer.Flush() 
$writer.Close()
$stream.Close()

不幸的是,这种方法仅适用于TCP打印机,不适用于本地连接的打印机。

因此,我需要PowerShell代码来绕过Windows打印机驱动程序,将该文件直接放入Windows打印机队列。

非常感谢您的帮助。

答案

为了回答我自己的问题,我找到了这个德国帖子:

https://newyear2006.wordpress.com/2016/10/17/direkte-kommunikation-mit-druckern-unter-windows-von-powershell-aus/

这解决了我的问题,效果很好。

以上是关于绕过带有Powershell的打印机驱动程序的主要内容,如果未能解决你的问题,请参考以下文章

使用 PowerShell 停止进程,我可以绕过确认吗?

PowerShell - 使用排序的对象数组打印 JSON 输出?

带有 Git 命令错误处理的 Powershell - 在来自外部程序的非零退出代码时自动中止

路径中的.cmd与.ps1

哪些方法可以绕过PowerShell Execution Policy?

哪些方法可以绕过PowerShell Execution Policy?