Назад | Перейти на главную страницу

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

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

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

Следующий сценарий 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: Управление сетевыми принтерами.

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