我创建了一个Windows Service,可以即时安装网络打印机。该服务通过执行PowerShell命令Get-Printer -Name \\Computer\Printer
来检查网络打印机是否已知。如果这导致错误(或没有返回打印机),我将使用PowerShell命令Add-Printer
安装打印机。
当代码未作为服务运行或在我的本地用户帐户下作为服务运行时,此方法有效。
但是,当服务以LocalSystem
,Network Service
或Administrators组的专用服务帐户身份运行时,该功能将无效。在进行远程调试时,我看到在这种情况下,Get-Printer
和Add-Printer
命令的行为就像已经安装了网络打印机,事实并非如此。有人知道我可以做些什么来做这项工作,还是我需要切换到其他策略(我故意不使用WMI)?