none
Подключение сетевого принтера, при условии, что он отстуствует

    Вопрос

  • Добрый день!

    Требуется VBS или Powershell скрипт, который бы подключал сетевой принтер, если он отсутствует.

    Если он присутствует (т.е. подключен), то ничего делать не надо.

    Проверка идет по UNC пути, например - \\printsrv01\Hp2015

    Ниже скрипт, который не отрабатывает:

    Dim Printer01Installed
    Printer01Installed = "false"
    
    Set WshNetwork = CreateObject("Wscript.Network")
    
    Set oWMIService = GetObject("winmgmts:" _
       & "{impersonationLevel=impersonate}!\\" & "." & "\root\cimv2")
    
    Set colInstalledPrinters = oWMIService.ExecQuery _
    ("Select * from Win32_Printer Where Network = TRUE")
    
    For Each objPrinter in colInstalledPrinters
    If ((lcase(objPrinter.Name) = lcase("\\printsrv01\Hp2015"))) Then       
        Printer01Installed = "true"
    End If
    
    If (Printer01Installed = "false") Then
    
                WshNetwork.AddWindowsPrinterConnection "\\printsrv01\Hp2015"
    
    End If
    

     

    12 июля 2018 г. 11:51

Ответы

  • Добрый день!

    Вот скрипт на PS:

    $printers = "\\server\pr1", "\\server\pr2"
    
    $obj = New-Object -ComObject WScript.Network
    $instPrinter = Get-WmiObject -Class win32_Printer | ? {$_.ShareName -ne $null} | select Name
    
    Foreach ($printer in $printers) {
        if ($instPrinter -notmatch $printer) {
            $obj.AddWindowsPrinterConnection($printer)
        }
    }



    • Изменено Sergey Ya 12 июля 2018 г. 12:36
    • Помечено в качестве ответа It-Kirill 12 июля 2018 г. 12:46
    12 июля 2018 г. 12:33

Все ответы