hihi,你可以建立一個批次檔內容如下:
<pre class="c" name="code">
runas 管理者帳號 程式路徑含副檔名
這個方式需要手動輸入密碼,不適合給一般使用者用,可以改用廠商所開發的runasspc
<pre class="c" name="code">
'Start of Script
'v1.2 March 2001
'Jeffery Hicks
'jhi...@quilogy.com http://www.quilogy.com
'USAGE: cscript|wscript VBRUNAS.VBS Username Password Command
'DESC: A RUNAS replacement to take password at a command prompt.
'NOTES: This is meant to be used for local access. If you want to run a command
'across the network as another user, you must add the /NETONLY switch to the RUNAS
'command.
' ***************************************************************************-******
' * THIS PROGRAM IS OFFERED AS IS AND MAY BE FREELY MODIFIED OR ALTERED AS *
' * NECESSARY TO MEET YOUR NEEDS. THE AUTHOR MAKES NO GUARANTEES OR WARRANTIES, *
' * EXPRESS, IMPLIED OR OF ANY OTHER KIND TO THIS CODE OR ANY USER MODIFICATIONS. *
' * DO NOT USE IN A PRODUCTION ENVIRONMENT UNTIL YOU HAVE TESTED IN A SECURED LAB *
' * ENVIRONMENT. USE AT YOUR OWN RISK. *
' ***************************************************************************-******
On Error Resume Next
dim WshShell,oArgs,FSO
set oArgs=wscript.Arguments
if InStr(oArgs(0),"?")<>0 then
wscript.echo VBCRLF & "? HELP ?" & VBCRLF
Usage
end if
if oArgs.Count <3 then
wscript.echo VBCRLF & "! Usage Error !" & VBCRLF
Usage
end if
sUser=oArgs(0)
sPass=oArgs(1)&VBCRLF
sCmd=oArgs(2)
set WshShell = CreateObject("WScript.Shell")
set WshEnv = WshShell.Environment("Process")
WinPath = WshEnv("SystemRoot")&"\System32\runas.exe"
set FSO = CreateObject("Scripting.FileSystemObject")
if FSO.FileExists(winpath) then
'wscript.echo winpath & " " & "verified"
else
wscript.echo "!! ERROR !!" & VBCRLF & "Can't find or verify " & winpath &"." & VBCRLF & "You must be running Windows 2000 for this script to work."
set WshShell=Nothing
set WshEnv=Nothing
set oArgs=Nothing
set FSO=Nothing
wscript.quit
end if
rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34), 2, FALSE)
Wscript.Sleep 30 'need to give time for window to open.
WshShell.AppActivate(WinPath) 'make sure we grab the right window to send password to
WshShell.SendKeys sPass 'send the password to the waiting window.
set WshShell=Nothing
set oArgs=Nothing
set WshEnv=Nothing
set FSO=Nothing
wscript.quit
'************************
'* Usage Subroutine *
'************************
Sub Usage()
On Error Resume Next
msg="Usage: cscript|wscript vbrunas.vbs Username Password Command" & VBCRLF & VBCRLF & "You should use the full path where necessary and put long file names or commands" & VBCRLF & "with parameters in quotes" & VBCRLF & VBCRLF &"For example:" & VBCRLF &" cscript vbrunas.vbs quilogy\jhicks luckydog e:\scripts\admin.vbs" & VBCRLF & VBCRLF &" cscript vbrunas.vbs quilogy\jhicks luckydog " & CHR(34) &"e:\program files\scripts\admin.vbs 1stParameter 2ndParameter" & CHR(34)& VBCRLF & VBCRLF & VBCLRF & "cscript vbrunas.vbs /?|-? will display this message."
wscript.echo msg
wscript.quit
end sub
實際試了一下那個程式碼,效果不好
需要改的部份在第64行,時間需要久一些,另外執行該runas命令帶出來的視窗必須擁有焦點,否則66行送出的密碼將會送錯地方XD
另外找到一個國人開發的小軟體試用了一下還不錯,你可以試試。
http://www.dotblogs.com.tw/dllee/archive/2008/04/29/3631.aspx
那個不好用的程式碼用法:
xxx.vba 系統管理員 密碼 程式路徑含副檔名
HeHe,那個不好用的程式經下列修改已可正常使用了
將
rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34), 2, FALSE)
改成
rc=WshShell.Run("runas /user:" & sUser & " " & CHR(34) & sCmd & CHR(34), 1, FALSE)
會自動把新開的視窗帶到最上方。
等待時間依電腦開新視窗的速度來修改,我的是100
可以給local administrator嗎?
可以的話,開local machine的administrator權限就好囉...
不行,請參考樓上大大的作法。
通常,把該程式存在的檔案路徑權限開啟或是登錄權限開啟就可以執行.
不過你只提到"特殊軟體", 所以也不保證.
一般來說加入網域後因為權限的關係,一般用戶許多東西都可以被限制住不能執行,就像我會將PC管控成 Thin Client 一樣,但是我很多程式仍然可以執行( PC 沒有硬碟槽全被我引藏掉了 ),問題解決方式就是要將檔案安裝路徑( 例如:Program Files 以下的資料夾權限必須要能夠讓 Domain User 讀取,我遇過 Dr.eye 是要寫的權限也要有 ),所以你可以用虛擬機測試一下,如何作可以兼顧到控管安全性與使用順利性,謝謝!!
還有一種方法, 用於有些軟體會回寫資訊至機碼中, 由於權限關係不允許其回寫, 通常可以直接到本機上用Regedit進去開放機碼特定目錄給這程式網域使用者權限即可.
過去常用於如Dr.Eye或會計.人事等應用軟體.不需給網域使用者本機的管理者權限, 這樣太危險且日後麻煩.
請試著用網路識別試試看吧!!
我的電腦-->右鍵-->內容-->電腦名稱-->底下有個網路識別
要做網路識別~您必須有可加入DOMAIN帳號的權限~謝謝