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