以管理员身份运行prnmngr.vbs,并从VB.net应用程序向其传递变量

以管理员身份运行prnmngr.vbs,并从VB.net应用程序向其传递变量,vb.net,.net-4.0,printing,vbscript,Vb.net,.net 4.0,Printing,Vbscript,我有大约12个Wyse瘦客户端,每次登录时都需要重新映射打印机。因此,我有一个应用程序,加载mac/username/printermodel文件,然后根据登录的用户在注册表中搜索Wyse客户端的mac,并将打印机名称、打印机驱动程序和要使用的端口传递给prnmngr.vbs,然后由该用户安装打印机 我遇到的问题是,除非我以管理员身份运行应用程序,否则不会添加打印机。因为prnmngr.vbs必须作为管理员权限运行 那么,如何以管理员身份运行prnmngr.vbs并向其传递3个变量呢 乔治我不确

我有大约12个Wyse瘦客户端,每次登录时都需要重新映射打印机。因此,我有一个应用程序,加载mac/username/printermodel文件,然后根据登录的用户在注册表中搜索Wyse客户端的mac,并将打印机名称、打印机驱动程序和要使用的端口传递给prnmngr.vbs,然后由该用户安装打印机

我遇到的问题是,除非我以管理员身份运行应用程序,否则不会添加打印机。因为prnmngr.vbs必须作为管理员权限运行

那么,如何以管理员身份运行prnmngr.vbs并向其传递3个变量呢


乔治

我不确定我是否正确理解了你的问题,请耐心听我说。如果您需要以管理员身份启动应用程序,并且prnmngr.vbs可以继承权限,则可以尝试此脚本

 Option explicit
dim oShell
set oShell= Wscript.CreateObject("WScript.Shell")
oShell.Run "runas /user:administrator ""yourapp.exe"""
WScript.Sleep 100
'Replace the string yourpassword~ below with
'the password used on your system. Include tilde 
oShell.Sendkeys "yourpassword~"
Wscript.Quit

显然,您需要限制对脚本的读取,因为它包含管理员密码

这听起来像是广告组策略的作业。@Joel Coehoorn问题是每次用户登录时端口都会更改。我知道。。。但是组策略可以处理每个用户和每个设备的问题。你有文章吗?我看到的一切都让我设置了端口。您想确保您的打印机是从一个公共打印服务器共享的,然后在GP管理中创建策略时,在“首选项”>“控制面板”>“打印机”的“用户或计算机”下查看