2016-08-22 75 views
1

我想根據我運行腳本的環境更改我的hosts文件。它看起來像我需要做的是以admin身份運行命令(提升特權),我似乎無法找到如何在AutoIT中做到這一點。從Selenium執行的AutoIT腳本中修改hosts文件

這裏是硒的調用的例子:

Runtime.getRuntime().exec("C:\HostSwitcher.exe " + C:\Scripts + " " + "QA2"); 

這裏是我的AutoIt代碼:

$filePath = $CmdLine[1] 
$env = $CmdLine[2] 


Run(@comspec & " /c DEL %WINDIR%\SYSTEM32\DRIVERS\ETC\HOSTS") 

if $env = "Dev" then 
    Run(@comspec & " /c COPY "&$filePath&"hostFiles\DevHost.txt %WINDIR%\SYSTEM32\DRIVERS\ETC\hosts") 
endif 

if $env = "QA2" then 
    Run(@comspec & " /c COPY "&$filePath&"hostFiles\QA2Host.txt %WINDIR%\SYSTEM32\DRIVERS\ETC\hosts") 
endif 

我怎麼會告訴AutoIt的以管理員​​運行?

回答

3

作爲開始筆記,您的帳戶應該擁有較高的權限。

據我知道你有選擇這裏:

  1. 最想得到的和安全的一個

    運行Java應用程序(的IntelliJ,Eclipse的)作爲管理員。這樣,由它產生或執行的任何進程都將以提升的特權運行(這在Windows中不僅可以作爲連鎖反應)。

  2. 以高特權

    Runtime.getRuntime().exec("runas /profile /user:Administrator \"C:\HostSwitcher.exe " + C:\Scripts + " " + "QA2");

+0

FYI爲未來的讀者,運行Eclipse以管理員身份運行它的伎倆我。謝謝 –