PowerShell 惠普打印机双面驱动自动设置已安装

win10系统,使用实验室的HP P2055dn打印机。每次关机重连后,都会把默认的双面打印机的设置改回“未安装”,需要手动改成“已安装”。感觉是个bug,win7的时候关机后状态还会保持。

 每次连上都要改一次,心累。。。

尝试用PowerShell把这个操作脚本化,实测还是比较容易实现的。PowerShell ISE的交互式开发模式良好地继承了Visual Studio的提示风格,几乎不看文档,简单的Tab几次,看属性名大概就能猜出涵义。和之前写C#的感觉挺相似的(傻瓜式编程)

 

代码比较简单,第一行列出打印机原属性,第二行设置双面打印(长边翻转),第三行设置双面打印驱动属性为已安装,第四行重新打印更改后的打印机属性。最后借助了一个暂停方法让程序可由等待用户输入后再退出。

https://stackoverflow.com/questions/20886243/press-any-key-to-continue

 

 1 Get-PrinterProperty -PrinterName 'HP LaserJet P205X series PCL6 Class Driver'
 2 Set-PrintConfiguration -PrinterName 'HP LaserJet P205X series PCL6 Class Driver'  -DuplexingMode TwoSidedLongEdge
 3 Set-PrinterProperty -PrinterName 'HP LaserJet P205X series PCL6 Class Driver' -PropertyName Config:DuplexUnit Installed
 4 Get-PrinterProperty -PrinterName 'HP LaserJet P205X series PCL6 Class Driver'
 5 
 6 
 7 pause "Press any key to continue"
 8 
 9 Function pause ($message)
10 {
11     # Check if running Powershell ISE
12     if ($psISE)
13     {
14         Add-Type -AssemblyName System.Windows.Forms
15         [System.Windows.Forms.MessageBox]::Show("$message")
16     }
17     else
18     {
19         Write-Host "$message" -ForegroundColor Yellow
20         $x = $host.ui.RawUI.ReadKey("NoEcho,IncludeKeyDown")
21     }
22 }

脚本在PowerShell ISE下调试很方便,写好后可能无法直接运行,可参考以下方式修改设置解决:

PowerShell因为在此系统中禁止执行脚本解决方法

 

如果想自己给脚本签名,可参考以下链接:

Powershell 脚本数字签名

需要注意的式,其中的代码可能由于版本原因,在win10上略有区别了。测试的时候发现cert:CurrentUserMy需要改为Cert:CurrentUser\My。

不过这个很容易发现,且稍微修改一下,或者Tab几下,就鞥你出现适当的提示帮助更正。

 

posted @ 2018-06-19 15:54 ijustwanttorun 阅读(...) 评论(...) 编辑 收藏