Добавить принтер VBS Script SWbemObjectEx Доступ запрещен

Сценарий работает нормально при запуске от имени администратора на локальном компьютере, но при развертывании через GPO, поскольку сценарий запуска получает «доступ запрещен» от SWbemObjectEx.put_. Вот весь сценарий:

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
 & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

On Error Resume Next
''--- in case the driver is already there
REM *** Installs printer driver needed for Universal PS 64 Bit
Set objDriver = objWMIService.Get("Win32_PrinterDriver") 
objDriver.Name = "HP Universal Printing PS" 
objDriver.FilePath = "\\share$\Drivers\Printers\HP\HP-Universal\x64\" 
objDriver.InfName = "\\share$\Drivers\Printers\HP\HP-Universal\x64\hpcu155v.inf"
objDriver.SupportedPlatform = "Windows NT x64" 
objDriver.Version = "3" 
errResult = objDriver.AddPrinterDriver(objDriver) 

rem *** Installs a TCP/IP printer local port on a computer
Set objNewPort = objWMIService.Get _
 ("Win32_TCPIPPrinterPort").SpawnInstance_
objNewPort.Name = "IP_172.17.87.226"
objNewPort.Protocol = 1
objNewPort.HostAddress = "172.17.87.226"
objNewPort.PortNumber = "9100"
objNewPort.SNMPCommunity = "public"
objNewPort.SNMPEnabled = False
objNewPort.Put_

rem *** installs printer 
Set objPrinter = objWMIService.Get("Win32_Printer").SpawnInstance_
objPrinter.DriverName = "HP Universal Printing PS" 
objPrinter.PortName = "IP_172.17.87.226"
objPrinter.DeviceID = "HP LaserJet P2055dn in TPCS-400"
objPrinter.Shared = False
objPrinter.Location = "TPCS-400"
objPrinter.Put_

Я использовал вторую версию сценария для отладки, добавив либеральные записи, например:

writeLineToLog("addPrinterDriver errResult=" & errResult)
If Err.Number <> 0 Then
    writeLineToLog("Error: " & Err.Number)
    'writeLineToLog("Error (Hex): " & Hex(Err.Number))
    writeLineToLog("Source: " &  Err.Source)
    writeLineToLog("Description: " &  Err.Description)
    Err.Clear
End If

и еще одну для определения текущего пользователя, вот результат отладки:

starting script at 2/16/2017 2:41:29 PM
addPrinterDriver errResult=0
after Installs a TCP/IP printer local port on a computer
The current user is SYSTEM
after Set objPrinter
after objPrinter.DriverName =
after objPrinter.PortName =
after objPrinter.DeviceID = 
after objPrinter.Shared = 
after objPrinter.Location=
after objPrinter.Put_
after Installs printer
Error: -2147217405
Source: SWbemObjectEx
Description: Access denied 

Ошибка приближается при попытке последнего put_.

1
задан 17 February 2017 в 20:01
1 ответ

Это политика GPO пользователя или компьютера? Я бы подозревал, что если это пользователь, у фактического пользователя может не быть разрешений на добавление принтера.

Вы можете попробовать следовать этому руководству из блога MSDN , чтобы предоставить пользователю доступ. Хотя я лично рекомендовал бы вам развертывать принтеры с помощью встроенных функций GPO, руководство по которым вы можете найти здесь .

1
ответ дан 3 December 2019 в 23:34

Теги

Похожие вопросы