2014-09-01 103 views
0

我希望有人可以幫我解決以下問題: 我想自動安裝網絡打印機:第一個腳本詢問用戶的網絡憑據,然後運行第二個,安裝打印機。問題是:腳本沒有拋出任何錯誤,但沒有打印機補充說:通過VBS腳本添加打印機

Dim objNetwork 
Set objNetwork = CreateObject("WScript.Network") 
set objShell = WScript.CreateObject("WScript.Shell") 
strUserName = InputBox("What is your username? (domain\username)") 
objShell.Run "runas /user:" & strUserName & " ""wscript.exe C:\pbg.vbs"" " 

pbg.vbs:

Dim objNetwork 
Set objNetwork = CreateObject("WScript.Network") 
objNetwork.AddWindowsPrinterConnection "\\10.100.1.29\Canon" 
objNetwork.SetDefaultPrinter "\\10.100.1.29\Canon" 

我做了這樣兩個文件的設計,因爲第一部分是在開機時間和用戶運行鍵 - 在他的用戶名/密碼(可以有在這個共享工作站不同的用戶),然後腳本中使用的用戶名/密碼來調用腳本的第二部分,它安裝網絡打印機

預先感謝您

+0

[This](http://technet.microsoft.com/en-us/library/bb490974.aspx)或[this](http://technet.microsoft.com/en-us/library/cc725868。 aspx)可以簡化問題。 – 2014-09-01 11:31:49

回答

0

您可以通過使用用戶標識/密碼在連接字符串內進行身份驗證,將VBScript中的連接連接到打印服務器。

將您擁有的代碼放在您爲PBG.vbs提供的代碼前面,並在代碼本身中完成所有代碼(更快/更清晰)。您也可以在新代碼中使PBG.vbs成爲函數。

下面是用不同的方式一些鏈接:

http://msdn.microsoft.com/en-us/library/aa389290%28v=vs.85%29.aspx Secure LDAP object manipulation with VBscript using alternate credentials How to make an Active Directory query from VBScript on a non-domain computer using domain credentials

+0

謝謝你的回覆。我可能應該澄清爲什麼它被分成2個文件 - 這是因爲它應該支持不同的用戶 - 所以腳本在機器重啓時自動運行,然後用戶輸入他/她的用戶名/密碼並使用腳本運行第二個腳本。用戶可以更改,因爲它用於共享工作站。希望它是有道理的。 – AKarpun 2014-09-01 13:02:28

0

基本上做同樣的事情與在建築的各個部分用戶安裝打印機的Active Directory組。只需將它們添加到組中,關聯的腳本就會觸發並將打印機安裝到建築物的該區域。

由於您也在使用域環境,所以您不需要第一個腳本。當用戶登錄第二個腳本時,將使用從Windows登錄期間使用的憑據獲得的權限執行,並且打印機將爲其安裝。