VBScript: проверка наличия общего принтера

Есть ли способ определить в VBScript, существует ли общий ресурс печати на сервере печати? Идея состоит в том, чтобы удалить подключение к этому принтеру, если общий ресурс удален с сервера.

Общий файловый ресурс - это вопрос проверки существующей папки, но как насчет общего ресурса печати?

1 ответ

Следующий VBScript использует WMI для подключения к ПК и перечисления всех очередей печати на вашем локальном компьютере с Windows. Чтобы запросить удаленный компьютер, просто введите имя этого компьютера вместо . в strComputer переменная.

strComputer = "."

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")

For Each objPrinter in colPrinters
    If objPrinter.Attributes And 64 Then 
        strPrinterType = "Local"
    Else
        strPrinterType = "Network"
    End If
    Wscript.Echo objPrinter.Name & " -- " & strPrinterType
Next

Чтобы удалить принтер из машины, используйте что-то вроде:

Set objNet = CreateObject("WScript.Network")
objNet.RemovePrinterConnection "\\SERVER\Printer"

Для получения дополнительной информации см. MS TechNet. Управление сетевыми принтерами.

Имейте в виду, что некоторые принтеры могут быть установлены на системном уровне и доступны для всех пользователей все время, но на клиентских ПК очереди могут быть установлены только в профиле пользователя и доступны только его учетной записи, когда они вошли в систему.

Другие вопросы по тегам