Есть ли способ определить в 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: Управление сетевыми принтерами.
Имейте в виду, что некоторые принтеры могут быть установлены на системном уровне и доступны для всех пользователей в любое время, но на клиентских ПК очереди могут быть установлены только в профиле пользователя и доступны только для его учетной записи, когда они вошли в систему.