有没有办法在 VBScript 中确定打印服务器上是否存在打印共享?这个想法是,如果共享从服务器上删除,则删除与该打印机的连接。
如果检查是否存在现有文件夹,则文件共享很重要,但是打印共享又如何呢?
答案1
以下 VBScript 使用 WMI 连接到 PC 并列出本地 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:管理网络打印机。
请记住,某些打印机可能安装在系统级别,并始终可供所有用户使用,但在客户端电脑上,队列可能仅安装在用户的配置文件中,并且仅在用户登录时可供他们的帐户使用。