Прежде всего, я извиняюсь за свой английский.Добавить локальный порт принтера с 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-адресом, но я хочу, чтобы добавить принтер в самба сервер с адресом, как «\\ XXX.XXX.X.XXX \ printerColor» , Я потерял много времени в Google, пытаясь найти скрипт, и все, что я видел, это для портов 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-порт без проблем в обычную учетную запись, и я могу добавить принтер с этим портом без проблем, но я хочу использовать сервер печати чашек для управления всеми принтерами, и мне нужно создать локальный порт, указывающий на сетевой адрес сервера. Вся проблема в том, что я хочу использовать настраиваемое имя для принтеров, и если я добавлю, что принтеры в качестве сетевых принтеров получаю такое имя, как «Ricoh3300C-PS в ServerName», и я хочу, например, «Ricoh 3300 Color». –