通过VBS脚本添加打印机

时间:2014-09-01 11:17:28

标签: networking printing vbscript install

我希望有人可以帮我解决以下问题: 我正在尝试自动安装网络打印机:第一个脚本询问用户他的网络凭据,然后运行第二个,安装打印机。问题是:脚本不会抛出任何错误但没有添加打印机:

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"

我做了这样的双文件设计,因为第一部分是在启动时运行的,用户键入了他的用户名/密码(在这个共享工作站上可以有不同的用户)然后脚本使用username / pass来调用第二部分正在安装网络打印机的脚本

提前谢谢

2 个答案:

答案 0 :(得分:0)

您可以通过使用用户ID /密码在连接字符串内进行身份验证,在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

答案 1 :(得分:0)

基本上使用Active Directory组执行相同操作,这些组为建筑物的各个部分中的用户安装打印机。只需将它们添加到组中,关联的脚本就会触发并将打印机安装在建筑物的该区域的本地。

由于您还在使用域环境,因此不需要第一个脚本。当用户登录时,第二个脚本将使用从Windows登录期间使用的凭据获得的权限执行,并且打印机将为它们安装。