Что-то не хватает для установки 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, так как я подозреваю, что другой принтер - это подключенный принтер, а не локальный принтер.