2014-09-01 82 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登录期间使用的凭据获得的权限执行,并且打印机将为其安装。