0
首先,我很抱歉我的英语。添加与VBS的本地打印机端口
我有一个关于Windows WMI的问题,以及如何将本地端口添加到共享打印机。我有此脚本:
Set objWMIService = GetObject("winmgmts:")
Set objNewPort = objWMIService.Get _
("Win32_TCPIPPrinterPort").SpawnInstance_
objNewPort.Name = "Ricoh3300C"
objNewPort.Protocol = 2
objNewPort.HostAddress = "XXX.XXX.X.XXX"
objNewPort.PortNumber = "9100"
objNewPort.SNMPEnabled = False
objNewPort.Put_
有了这个,我可以添加与IP地址的打印机,但我想补充的Samba服务器的打印机中包含“\\ XXX.XXX.X.XXX \ printerColor”地址。我在谷歌上花了很多时间试图找到一个脚本,并且我看到的所有内容都是针对TCPIP端口的。我不想这样做,但在当地的港口。
我试图用prnadmin.dll使用这个脚本,没有运气。
function PortAdd(strPort, portType)
on error resume next
dim oMaster
dim oPort
dim iResult
set oMaster = CreateObject("PrintMaster.PrintMaster.1")
set oPort = CreateObject("Port.Port.1")
iResult = kErrorFailure
oPort.PortName = strPort
oPort.PortType = portType
oMaster.PortAdd oPort
if Err = 0 then
iResult = kErrorSuccess
else
wscript.echo "Error: 0x" & Hex(Err.Number) & ". " & Err.Description
end if
PortAdd = iResult
end function
我得到这个错误:
Error: 0x1A8. Se requiere un objeto
英语就像
Error: 0x1A8. An object is required
我怎样才能解决这个错误,或者我可以用什么脚本添加本地端口?提前致谢。
我忘了说我想用没有管理员权限的普通用户来做。第一个脚本在那个用户中工作正常,但是对于TCPIP。
我不确定添加端口是否可以用普通用户凭证完成。请告知在哪一行发生VBS错误。 – Tomalak
删除'On Error Resume Next'以查看错误发生在哪一行。 –
我发现第二个脚本给出了这个错误,因为需要管理员帐户(我管理员帐户,但我没有在W7作为管理员运行),但第一个脚本添加一个TCPIP端口没有问题在普通帐户,我可以添加具有该端口的打印机没有问题,但我想使用Cups打印机服务器来管理所有打印机,我需要创建一个指向服务器网络地址的本地端口。所有的问题是因为我想为打印机使用自定义名称,如果我添加打印机作为网络打印机,我会得到一个名称,如“Ricoh3300C-PS在ServerName”,并且我想要“Ricoh 3300 Color”例如。 –