如果一個程式需要通路檔案伺服器的共享目錄,卻不能讓執行這個程式的使用者通路這個共享目錄,怎麼辦?
解決方法:使用runas指令。
具體做法是,在本地先建立一個檔案伺服器授權了的使用者abc,然後在控制台執行下面指令:
runas /savecred /user:abc notebook.exe
這樣第一次運作會要密碼,第二次運作就不要了。
如果不願意打開cmd運作敲指令,又覺得寫個bat顯示DOS視窗難看,可以建立一個run.vbs檔案,内容如下:
Set shell = Wscript.createobject("wscript.shell")
tmp = shell.run ("C:\Windows\System32\runas /savecred /user:abc notebook.exe",0)
這樣就可以讓程式以abc身份運作了,由于abc有通路檔案伺服器的權限,是以程式也就可以通路檔案伺服器。而運作此程式的使用者沒有伺服器通路權限,是以他就不能通路檔案伺服器。
對于vbs檔案可以使用vbs2exe轉成exe檔案。
新問題:
由于啟動的程式是ruanas為其他賬戶的,那麼運作的程式和目前使用者就不在同一個環境了,是以就不能互操作。比如不能把資料總管中的檔案拖拽到改程式。
一下是runas的一些資訊,參考自:http://blog.sina.com.cn/s/blog_107000590100mwml.html
從 Windows 2000 開始,微軟的視窗作業系統開始提供給目前登入使用者以不同的使用者身份來運作程式的功能。前提是系統的 RunAs 服務(Windows 2000 下) / Secondary Logon 服務(Windows XP 下)沒有被禁用并處于已啟動狀态。
在必需的 RunAs / Secondary Logon 服務已經啟動之後,就可以為程式設定使用者身份。對于一般的可執行程式來說,隻需要建立指向該可執行檔案的快捷方式,然後在按住 Shift 鍵的同時滑鼠右鍵單擊快捷方式,然後單擊“運作方式 ...”,在彈出的對話框中設定指定的使用者及密碼資訊即可。這裡是微軟官方的 HOW TO 指南。
但對于某些特殊類型的快捷方式來說,用 Shift + 滑鼠右鍵喚出的菜單中并沒有“運作方式 ...”的設定選項,比如說一些批處理檔案(.bat)等有預設檔案類型打開方式的快捷連接配接。對于這種檔案如果需要使用到 RunAs 的功能,可以建立一個空的快捷方式,在快捷方式向導對話框中鍵入項目的位置為 runas /savecred /usr:administrator "command line to the real application" 即可。其中 /usr: 後面的 administrator 表示以 administrator 使用者身份運作程式;command line to the real application 填寫實際程式的執行指令; /savecred 參數将自動儲存輸入的密碼,這樣在下一次運作快捷方式的時候就不需要再輸入密碼(該參數在 XP Home Edition 版本中無效),如果不希望系統儲存密碼去掉該參數即可。
RUNAS 用法:
RUNAS [ [/noprofile | /profile] [/env] [/netonly] ]
/user: program
/smartcard [/user:] program
/noprofile 指定不應該加載使用者的配置檔案。
這會加速應用程式加載,但
可能會造成一些應用程式運作不正常。
/profile 指定應該加載使用者的配置檔案。
這是預設值。
/env 要使用目前環境,而不是使用者的環境。
/netonly 隻在指定的憑據限于遠端通路的情況下才使用。
/savecred 用使用者以前儲存的憑據。
Windows XP Home Edition 上沒有這個選項。
該選項會被忽略。
/smartcard 如果憑據是智能卡提供的,則使用這個選項。
/user 應使用 USER@DOMAIN 或 DOMAIN\USER 形式
program EXE. 的指令行。請參閱下面的例子
例如:
> runas /noprofile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:[email protected] "notepad "my file.txt""
注意: 隻在得到提示時才輸入使用者的密碼。
注意: USER@DOMAIN 跟 /netonly 不相容。
注意: /profile 跟 /netonly 不相容。
其中mymachine可以通過我的電腦--屬性--好像是第二個頁籤上面查到
剛啟動電腦後直接進入受限帳戶,使用runas指令時會出現"拒絕通路".
使用者名,密碼等都輸入正确,但進一遍管理者使用者後再回來則一切正常,請教下原因...
試試這個:runas /savecred /user:mymachine\administrator cmd
Runas
允許使用者用其他權限運作指定的工具和程式,而不是使用者目前登入提供的權限。
文法
runas [{/profile /noprofile}] [/env] [/netonly] [/smartcard] [/showtrustlevels] [/trustlevel] /user:UserAccountName program
參數
/profile
加載使用者的配置檔案。/profile 是預設值。
/no profile
/noprofile 指定不加載使用者的配置檔案。這使應用程式載入的更加快速,但是在一些應用程式中也會引起錯誤。
/env
指定目前使用的網絡環境,而不是使用者的本地環境。
/netonly
指明指定的使用者資訊隻用于遠端通路。
/smartcard
/smartcard 表示憑據是否是由智能卡提供的。
/showtrustlevels
列出 /trustlevel 開關項。
/trustlevel
指定應用程式運作所在的授權級别。使用 /showtrustlevels 檢視可用的信任級别。
/user:UserAccountName
指定在其下運作程式的使用者帳戶的名稱。使用者帳戶的格式應是 user@domain 或 domain\user。
程式
指定要用在 /user 中指定的帳戶運作的程式或指令。
/?
在指令提示符顯示幫助。
注釋
管理者可以使用一個權限受限制的帳戶執行日常、非管理性的任務,隻有在執行特定管理任務時,才使用一個權限更大的帳戶。要不經過登出再重新登入就完成這樣的任務,可以用一般帳戶登入,然後使用 runas 指令來運作需要更大權限的工具。
有關 runas 指令的使用範例,請參閱“相關主題”。
盡管 runas 通常由 Administrator 帳戶使用,但并非僅限于 Administrator 帳戶。任何擁有多個帳戶的使用者均可以利用備用憑據,使用 runas 運作程式、MMC 控制台或“控制台”項。
如果要在計算機上使用 Administrator 帳戶,對于 /user:,鍵入下列參數之一:
/user:AdministratorAccountName@ComputerName
/user:ComputerName\AdministratorAccountName
如果想以域管理者身份使用這個指令,鍵入下列參數之一:
/user:AdministratorAccountName@DomainName
/useromainName\AdministratorAccountName
runas 指令允許您運作程式 (*.exe)、儲存的 MMC 控制台 (*.msc)、程式和儲存的 MMC 控制台的快捷方式及“控制台”項。作為另一組(例如“Users”或“Power Users”組)的成員登入到計算機時,可以以管理者的身份運作。
可以使用 runas 指令來啟動任何程式、MMC 控制器或“控制台”項。隻要提供适當的使用者帳戶和密碼資訊,使用者帳戶就具有登入到計算機的能力,并且程式、MMC 控制台、“控制台”項在系統中及對該使用者帳戶均可用.
runas 指令允許您管理其他域的伺服器(運作工具的計算機和要管理的伺服器在不同的域中)。
如果嘗試使用 runas 從網絡位置啟動程式、MMC 控制台或“控制台”項,可能會因為用來連接配接網絡共享的憑據與用來啟動程式的憑據不同而失敗。後者的憑據可能無法通路同一網絡共享。
有些項,例如“列印機”檔案夾和桌面項,間接由 Windows 2000 打開,而不能使用 runas 指令啟動。
如果 runas 指令失敗,則可能是沒有運作 RunAs 服務或使用的使用者帳戶無效。要檢查 RunAs 服務的狀态,請在“計算機管理”中單擊“服務和應用程式”,然後單擊“服務”。要測試使用者帳戶,請嘗試使用該帳戶登入合适的域。
範例
要在本地計算機上以管理者身份啟動 Windows 2000 指令提示行執行個體,請鍵入:
runas /user:localmachinename\administrator cmd
系統提示時,鍵入管理者密碼。
要使用名為 companydomain\domainadmin 的域管理者帳戶啟動“計算機管理”管理單元執行個體,請鍵入:
runas /user:companydomain\domainadmin "mmc %windir%\system32\compmgmt.msc"
當提示時,鍵入帳戶密碼。
要使用名為 domain.microsoft.com 的域中的域管理者帳戶 user 啟動“記事本”執行個體,請鍵入:
runas /user:[email protected] "notepad my_file.txt"
要啟動指令提示符行視窗、儲存的 MMC 控制台、控制台項或管理其他地點伺服器的程式的一個執行個體,請鍵入:
runas /netonly /user:domain\username "command"
domain\username 必須是有足夠權限管理伺服器的使用者。當提示時,鍵入帳戶密碼。
在win2k中,開始→程式→附件 ,找到電腦,按住shift鍵,點右鍵,選擇“運作方式 ...”,這時候,會彈出對話框,詢問你要使用哪個使用者身份來運作該程式 。
不知道大家是否使用過win2k的這個功能,如果大家是使用win2k的英文版本的話,在按住shift後選擇的就不是“運作方式 ...”而是“runas...”,也就是今天要講的這個指令。
在cmd中輸入runas,會得到幫助,今天,我們隻将它最簡單的用法,就是怎麼樣使用這個指令來以另外一個使用者身份運作一個程式。
其實,指令非常簡單:
runas /user:user_name program.exe
user_name是要使用哪個使用者運作該程式就寫上哪個使用者名,program.exe是程式名,如果program.exe不在system32目錄下的話,需要指明具體路徑。
為了證明這個過程,做一個實驗,那就是使用guest帳号來運作at指令,檢視目前的計劃任務清單,大家都知道,guest預設情況下是沒有此權限的,是以,隻要這個指令真的起作用的話,會出現“拒絕通路”的字樣,在這裡,我們使用這個指令:
runas /user:guest "cmd.exe cmd/k at.exe"
cmd.exe 是調用cmd這個程式,而cmd/k則是指cmd指令後跟/k參數,目的是為了是目前的執行結果的螢幕保留。
(注意:這裡由于指令過長,而且中間有空格,是以用引号引起來,如果隻有一個指令,例如at.exe的話,那麼就不需要有引号了)
由于運作的程式是在一個新視窗中打開,而不是在原來的cmd視窗中打開,是以,如果我不使用cmd.exe cmd/k這個參數的話,視窗會一閃而過,看不到效果。
運作完這個指令後,會要求guest的密碼,填上,回車,等一會,一會就會出現一個cmd視窗,裡面寫着“拒絕通路”,而且,在cmd視窗上沿還有“(運作為guest)”的字樣。
這個工具還可以在域中使用,而且還可以加上個人配置檔案,實在是很爽 ~~~
-------
RUNAS 用法:
RUNAS [/profile] [/env] [/netonly] /user: program
/profile 如果需要加載使用者的配置檔案
/env 要使用目前環境,而不是使用者的環境。
/netonly 隻在指定的憑據限于遠端通路的情況下才使用
/user 應使用 USER@DOMAIN 或 DOMAIN\USER 形式
program EXE. 的指令行。參閱下面的例子
例如:
> runas /profile /user:mymachine\administrator cmd
> runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc"
> runas /env /user:[email protected] "notepad "my file.txt""
注意: 隻有在被提示時才輸入使用者的密碼。
注意: USER@DOMAIN 與 /netonly 不相容。
這應該是英語吧!!!!!!!
runas 指令的使用及RUNAS自動輸入密碼的方法
from:http://simplorer.blog.51cto.com/447671/415390
在win2k中,開始→程式→附件 ,找到電腦,按住shift鍵,點右鍵,選擇“運作方式 ...”,這時候,會彈出對話框,詢問你要使用哪個使用者身份來運作該程式 。
不知道大家是否使用過win2k的這個功能,如果大家是使用win2k的英文版本的話,在按住shift後選擇的就不是“運作方式 ...”而是“runas...”,也就是今天要講的這個指令。
在cmd中輸入runas,會得到幫助,今天,我們隻将它最簡單的用法,就是怎麼樣使用這個指令來以另外一個使用者身份運作一個程式。
其實,指令非常簡單:
runas /user:user_name program.exe
user_name是要使用哪個使用者運作該程式就寫上哪個使用者名,program.exe是程式名,如果program.exe不在system32目錄下的話,需要指明具體路徑。
為了證明這個過程,做一個實驗,那就是使用guest帳号來運作at指令,檢視目前的計劃任務清單,大家都知道,guest預設情況下是沒有此權限的,是以,隻要這個指令真的起作用的話,會出現“拒絕通路”的字樣,在這裡,我們使用這個指令:
runas /user:guest "cmd.exe cmd/k at.exe"
cmd.exe 是調用cmd這個程式,而cmd/k則是指cmd指令後跟/k參數,目的是為了是目前的執行結果的螢幕保留 。
(注意:這裡由于指令過長,而且中間有空格,是以用引号引起來,如果隻有一個指令,例如at.exe的話,那麼就不需要有引号了)
例:
(1)runas /user:administrator "C:\Program Files\AutoCAD R14\acad.exe"
(2)輸入密碼:(輸入時密碼會看不到)
(3)這樣就可以用“administrator"使用者權限來啟動那個程式了,通常我們可以使用它來執行安裝程式,即可做到不用切換使用者來安裝“
由于運作的程式是在一個新視窗中打開,而不是在原來的cmd視窗中打開,是以,如果我不使用cmd.exe cmd/k這個參數的話,視窗會一閃而過,看不到效果。
運作完這個指令後,會要求guest的密碼,填上,回車,等一會,一會就會出現一個cmd視窗,裡面寫着“拒絕通路”,而且,在cmd視窗上沿還有“(運作為guest)”的字樣。
這個工具還可以在域中使用,而且還可以加上個人配置檔案,實在是很爽 ~~~
-------
RUNAS [/profile] [/env] [/netonly] /user:<UserName> program
/profile 如果需要加載使用者的配置檔案
/env 要使用目前環境,而不是使用者的環境。
/netonly 隻在指定的憑據限于遠端通路的情況下才使用
program EXE. 的指令行。參閱下面的例子
> runas /profile /user:mymachine\administrator cmd
> runas /env /user:[email protected] "notepad \"my file.txt\""
注意: 隻有在被提示時才輸入使用者的密碼。
但由于RUNAS每次都要自己輸入密碼,很是麻煩,我們也可以改用其它方法:
自動輸入RUNAS密碼的方法
以非管理者使用者登入時,如果要用管理者權限運作程式的話,需要用到 runas 指令,在使用腳本運作時,無法簡單的利用管道來輸入密碼,有以下方法可免除每次需要輸入密碼的麻煩。
1、使用系統自帶的 runas /savecred 選項,第一次輸入密碼後,會儲存憑據。
2、使用 sanur,sanur 是一個小程式,能以管道的方法将密碼或者檔案中的内容傳遞給 runas 程式。
runas | sanur password
runas | sanur /i [drive:][path]filename
特點:密碼明文儲存。
----------------------------------
About Sanur
Sanur is a tiny Win32 console utility that 'pipes' a password into the Windows 2000/XP/2003 Runas utility, thereby making Runas scriptable.
Licencing
Sanur is freeware. There is no fee for personal or corporate use. For more details see the 'readme.txt' file included in sanur.zip.
Usage
Pipe your normal Runas commandline into Sanur and specify the password on Sanur's commandline or use the /i switch to have Sanur read the password from a file:-
RUNAS <options> | SANUR password
RUNAS <options> | SANUR /i [drive:][path]filename
In otherwords, just add | SANUR password to the end of your working Runas command.
Examples
Pipe the password 'pa55w0rd' into Runas:-
runas /u:domain\username program.exe | sanur pa55w0rd
Pipe the password from the file named password.txt into Runas:-
runas /u:domain\username program.exe | sanur /i password.txt
Same as above but any Runas errors, such as a logon failure, will be displayed:-
runas /u:domain\username program.exe >&2 | sanur /i password.txt
Support
As of 2005-01-11 Sanur is no longer supported. If you are having problems getting Sanur to work please read the troubleshooting AND the FAQ pages, or seek an alternative solution. Please don't send me any emails relating to Sanur.
相關頁面:
<a href="http://www.commandline.co.uk/sanur_unsupported/index.html">http://www.commandline.co.uk/sanur_unsupported/index.html</a>
3、使用 lsrunas,功能類似 sanur,不過它無需運作 runas,自帶完整的參數來執行。
<a href="http://www.moernaut.com/default.aspx?item=lsrunas">http://www.moernaut.com/default.aspx?item=lsrunas</a>
用法:
lsrunase /user:administrator /password:41BngA== /domain: /command:notepad.exe /runpath:c:\
所有的參數必須齊全,其中:
user 為運作的賬号
password 為密碼加密後的字串
domain 為機器名或域名,也可留白代表本機
command 為要運作的程式名,如果攜帶參數需要在指令的首尾加引号
runpath 為程式啟動的路徑
特點:可以較完美的替代 runas,并避免直接将密碼明文儲存在腳本中。
<a href="http://www.moernaut.com/default.aspx?item=lsrunase">http://www.moernaut.com/default.aspx?item=lsrunase</a>
5、使用 cpau,cpau 也是一個替代 runas 的程式,并且功能強大,可以使用加密的密碼。
cpau -u administrator -p password -ex notepad -file start_notepad.txt -enc
cpau -file start_notepad.txt -dec
以上指令可以先将要執行的指令加密儲存為一個檔案,執行時載入此檔案。
特點:可以保護執行的腳本及指令不被他人檢視,但在使用網絡路徑時存在一些問題。
<a href="http://www.joeware.net/win/free/tools/cpau.htm">http://www.joeware.net/win/free/tools/cpau.htm</a>
6、使用 autoit,autoit 是一個腳本自動化執行的工具,可以完成很多自動化的任務,并且可以将腳本編譯成 exe 檔案來直接運作,進而達到了隐藏密碼資訊的目的。
特點:功能強大,但操作複雜。
<a href="http://www.autoitscript.com/autoit3/">http://www.autoitscript.com/autoit3/</a>
還有其他一些工具能夠完成類似的操作。
本文轉自 h2appy 51CTO部落格,原文連結:http://blog.51cto.com/h2appy/1100090,如需轉載請自行聯系原作者