vb.net - 如何修复尝试以编程方式创建打印机端口的未指定错误?
问题描述
我正在尝试使用具有 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
在第二遍中的 Line objNewPort.Name = lPrinterName 是发生未指定错误的地方。希望通过不让他们手动输入端口来节省时间
解决方案
这实际上对我有用。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()
}
推荐阅读
- node.js - Spotify Api Auth unsupported_grant_type
- android - 尝试在 VSCode 和 Flutter 中调试时突然出现 Gradle 错误
- jquery - Wordpress Elementor - 灯箱问题 + Jquery 冲突
- java - 如何从一个活动和另一个活动将元素添加到数组列表
- outlook-addin - Outlook 的慢速和禁用加载项
- windows - # STOP-PRESS - 这是一个 GAWK 问题 # 如何让 Windows 10 让 CodePages 正确显示?
- javascript - 修复了标题 div 在滚动时消失的菜单
- javascript - 每 X 秒和每个 X 元素循环的打字稿/角度延迟延续
- jquery - 带有模态的jquery多个复选框
- r - 使用 R 的聚类算法