我有一位用戶在她登錄我們的終端服務器時想讓本地桌面打印機成爲默認打印機。我已經創建了一個簡單的登錄腳本此將默認打印機設置爲更改名稱的打印機
Set WSHNetwork = CreateObject("WScript.Network")
WSHNetwork.SetDefaultPrinter "HP LaserJet 6P (redirected 3)"
這裏的問題是,無論出於何種原因,打印機名稱不斷變化的最後一位。 的HP LaserJet 6P(重定向),的HP LaserJet 6P(重定向2),和的HP LaserJet 6P(重定向1)是打印機中的顯示方式的例子。
我不知道VBScript足以解釋這些變化,並希望有人能幫助我找到正在使用的名稱的變體,並將其設置爲默認打印機。
我發現了一個可能有幫助的代碼片段,但我不確定如何正確實現它。
Function printerExists(str)
printerExists = False
Dim objWMIService
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
Dim colPrinters
Set colPrinters = objWMIService.ExecQuery("Select * From Win32_Printer")
Dim objPrinter
For Each objPrinter In colPrinters
If objPrinter.Name = str Then
printerExists = True
Exit For
End If
Next
End Function
我建議修復名稱更改而不是試圖解決它。 –
我已經看過,但顯然客戶端打印機是動態添加到終端服務器。因此,取決於通過RDP會話連接到終端服務器的其他本地打印機的數量決定了打印機重命名的內容。除了分享她的打印機,然後將其添加到終端服務器,然後將共享設置爲她的默認值(然後不應該改變),我找不到任何其他方法。實際上這可能是比此登錄腳本更好的解決方案。嗯... – Josh