情景描述:筆者的公司遇到這樣的狀況,公司的電腦分配的時候,給用戶的權限都是通常使用者,即只有使用權限,沒有管理員權限,沒法安裝軟件。如今須要在全部的相關電腦上升級×××軟件,這些電腦若是都在網域裏面的話,只要經過組策略,作計算機配置,進行軟件分發,客戶端策略生效後重啓電腦,通常就能夠完成軟件的升級工做。可是,有一半的用戶都是遠程用戶,經過×××來進行辦公。不多鏈接到公司網域裏面來。要升級×××,只能單機安裝,用戶又沒有軟件安裝權限,有一個辦法,就是告知用戶切換到管理員賬號進行安裝,可是這樣一來,全部的用戶都知道了本地管理員賬號與密碼,這樣無疑會帶來大量的風險,有技術上的可行性,可是從管理的角度是沒法實施的。後來,筆者又想到了runas來提高管理員權限,在普通用戶下來提高權限,可是公司的電腦啓用了Applocker, 並且runas沒法很好的進行加密。ide
根據以上的狀況描述,筆者採用了sendkeys的方式,經過鍵盤發送密碼,最後測試成功,並大量的分發給遠程用戶使用,下面是部分vbs代碼:測試
Set WshShell = CreateObject("WScript.Shell")加密
WshShell.Run "runas /user:admin cmd.exe"spa
WshShell.SendKeys "********{enter}"ip
Wscript.Sleep(2000)路由
WshShell.Appactivate "cmd.exe"cmd
WshShell.SendKeys "cd\{enter}"it
WshShell.SendKeys "e:{enter}"class
WshShell.SendKeys "cd ***{enter}"軟件
WshShell.SendKeys "***.msi /passive{enter}"
Wscript.Sleep(2000)
WshShell.Appactivate "cmd.exe"
Wscript.Sleep(2000)
WshShell.Appactivate "exit{enter}"
採用這種方式,能夠執行exe, msi等格式,不受限制,徹底模擬客戶端操做。腳本執行過程當中,不能隨意移動鍵盤/鼠標。
一樣,使用sendkeys, 能夠解決部分管理員重複的工做,好比天天定時重啓路由器,或者天天清理某項紀錄。