在配置金碟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}"
在此只是一個運用例子,看觀完全可以根據自已要求改成對其它程式的支援。