Что-то не хватает для установки 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

В вашем командлете Add-PrinterPort вы пропускаете часть SNMP, и именно этот параметр заставляет диспетчер очереди проверять состояние принтера. (Отключение части SNMP также отключит любое программное обеспечение монитора печати, которое поставляется с драйвером)

-SNMP Включает SNMP и указывает индекс для управления портами принтера TCP/IP.

-SNMPCommunity Указывает имя сообщества SNMP для управления портами принтера TCP/IP.

вопрос 2

Ваш скрипт создает локальный порт TCP/IP, таким образом, только администратор может удалить его или нет, пожалуйста, проверьте права пользователя /UAC, так как я подозреваю, что другой принтер - это подключенный принтер, а не локальный принтер.

Другие вопросы по тегам