您的位置:首页 > 其它

windows 用其它用户运行程序

2009-12-14 10:39 274 查看
在配置金碟k3客户端时,碰到个问题,如果启用域很好处理,否则要保存客户端电脑和服务器上有相当用户且密码要一致,客户端只能用这个用户登陆并启动客户端。这样用起来很不方便,服务器和每台客户端都要加用户。于是想了一个折中的办法。 统一都用一个用户k3test,服务器上也只加这一个用户用于k3,客户端都建同样的这一个用户k3test。

用户使用时还用平时用的用户登陆入,当用k3时,可以用另一个用k3test 来运行k3客户端。runas 可以实现此功能,但不方便之处就是每次在命令窗口要输入密码,给最终用户带来麻烦,也容易出错.

有几种方法改进:

一.完全自已写一个程序 通过调用 CreateProcessAsUser API 实现,不想搞得太麻烦,所以不采用。

二.runas 可以有保存密码的选项,这个比较实在 (将下面代码保存为 .bat 文件,第一次运行需要密码)

#选项 /savecred 可以在第一次输入密码后保存,之后就不需要再输入密码了

runas /user:k3test /savecred "C:/Program Files/Kingdee/K3ERP/K3Express/kdmain.exe"

三.通过 脚本 开一个 cmd 用 sendkey 送密码 (将下面代码保存为 .vbs 文件)

'---------------------------

'用其它用户身份运行金碟k3程序

'---------------------------

set sh=WScript.CreateObject("WScript.Shell")

sh.run("cmd /B")

WScript.Sleep 500

sh.SendKeys "runas /user:k3test " ' 用户名

WScript.Sleep 500

sh.SendKeys " ""C:/Program Files/Kingdee/K3ERP/K3Express/kdmain.exe"""

WScript.Sleep 1000

sh.SendKeys "{enter}"

WScript.Sleep 500

sh.SendKeys "1234" '密码

sh.SendKeys "{enter}"

sh.SendKeys "exit"

sh.SendKeys "{enter}"

在此只是一个运用例子,看观完全可以根据自已要求改成对其它程序的支持。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: