PowerShell 安装打印机缺少某些内容

PowerShell 安装打印机缺少某些内容

我正在尝试准备一个 PowerShell 脚本来安装打印机。这将用于自动执行任务,其中将提供可用的打印机名称和 IP 地址。大多数脚本似乎都可以工作,但缺少一些内容。下面是脚本,然后我将澄清缺少的内容。

$knownPrinterDriver = "DTC4500e Card Printer"
$ipPort = 5400
$finalPortName = "MyPort_5400"
$ipAddress = "192.168.30.13"
$finalPrinterName = "Printer1"

$goodDriver = Get-PrinterDriver | Where-Object { $_.Name -eq $knownPrinterDriver }
if( $goodDriver.Count -eq 0 )
{
   # no printer driver found
   return -1
}

# SHOULD only be ONE, so get it as reference    
$oneDriver = $goodDriver[0]

# using the ` backtick mark as continuation line
Add-PrinterPort `
   -Name $finalPortName  `
   -PrinterHostAddress $ipAddress  `
   -PortNumber $ipPort

# Re-check if printer was actually loaded or not.
$availPorts = Get-PrinterPort | Where-Object { $_.Name -eq $finalPortName }
if( $availPorts.Count -eq 0 )
{
   return -2
}

$onePort = $availPorts[0]


Add-Printer `
   -DriverName $oneDriver.Name `
   -Name $finalPrinterName `
   -PortName $onePort.Name

# Re-check if printer was actually loaded or not.
$availPrinters = Get-Printer | Where-Object { $_.Name -eq $finalPrinterName }
if( $availPrinters.Count -eq 0 )
{
   return -3
}

return 1

因此,运行脚本后,它会创建端口,没有问题。创建与端口关联的打印机,也没有问题。

现在,我转到“打印机和设置”

打印机结果

(显然经过编辑以显示两者)您可以看到一台打印机显示删除设备的选项,而脚本打印机则没有。还有第二部分。在尝试运行轮询设备的其他程序时,状态为“未知”,而不是就绪或脱机。

有什么建议吗?非常感谢。

答案1

问题 1

在您的 cmdlet Add-PrinterPort 中,您错过了 SNMP 部分,该参数将使后台处理程序检查打印机的状态。(禁用 SNMP 部分也将禁用驱动程序附带的任何打印监视软件)

SNMP 启用 SNMP 并指定 TCP/IP 打印机端口管理的索引。

-SNMP社区 指定 TCP/IP 打印机端口管理的 SNMP 团体名称。

问题2

您的脚本创建了一个本地 TCP/IP 端口,因此只有管理员可以删除它,请检查用户权限/UAC,因为我怀疑另一台打印机是映射打印机,而不是本地打印机。

相关内容