我正在尝试使用具有IPAddress的csv文件创建100个打印机端口。我正在使用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在第二遍是发生未指定错误的地方。 希望通过不手动输入端口来节省时间
答案 0 :(得分:1)
这实际上对我有用。 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()
}