Назад | Перейти на главную страницу

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

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

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

-SNMPCсообщество Задает имя сообщества SNMP для управления портом принтера TCP / IP.

вопрос 2

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