Как исправить Unspecified Error при программном создании портов принтера? - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь создать 100 портов принтера, используя CSV-файл с IP-адресом.Я вращаюсь через этот файл, используя VB 2008, а затем вызываю функцию для создания порта.Первый порт создается нормально, но когда программа получает второй адрес и передает его функции, появляется неопределенная ошибка.

вызов функции
MakePort ("IP_" & ln, ln)

Private Function MakePort(ByVal lPrinterName As String, ByVal _      lHostAddress As String)
    Dim res As Boolean = False
    Dim objWMIService As WbemScripting.SWbemServices = GetObject("winmgmts:")
    Dim objNewPort = objWMIService.Get("WIN32_TCPIPPrinterPort").SpawnInstance_
    Try
        objNewPort.Name = lPrinterName
        objNewPort.Protocol = 1
        objNewPort.HostAddress = lHostAddress
        objNewPort.PortNumber = "6101"
        objNewPort.SNMPEnabled = False

        objNewPort.Put_()
        res = True
    Catch ex As Exception
        res = False
        MsgBox(ex.Message)
    End Try
    objNewPort.Name = ""
    objNewPort.Protocol = ""
    objNewPort.HostAddress = ""
    objNewPort.PortNumber = ""

    objNewPort = Nothing
    objWMIService = Nothing


    Return res
End Function

В строке objNewPort.Name = lPrinterName во втором проходе происходит ошибка Unspecified.Хотите сэкономить время, не вводя их вручную в портах

1 Ответ

1 голос
/ 11 июня 2019

Это действительно сработало для меня. Скрипт Powershell.

$PrinterList=get-content C:\scripts\printers.csv 
FOREACH ($ip in $PrinterList) {   
   Print $I $port=[wmiclass]"Win32_TcpIpPrinterPort" 
   $port.psbase.scope.options.EnablePrivileges=$true 
   $newPort=$port.CreateInstance() 
   $newport.name="$ip" 
   $newport.Protocol=1 
   $newport.HostAddress=$ip 
   $newport.PortNumber="6101" 
   $newport.SnmpEnabled=$false 
   $newport.Put()
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...