2012-03-06 172 views
1

我需要以管理員身份運行安裝腳本。我試過幾件事情,但他們沒有工作使用runas命令運行腳本

runas /user:Administrator install.bat 

外殼要求輸入密碼,然後打開一個新的shell窗口,並關閉它馬上不執行腳本

runas /user:Administrator "call install.bat" 

外殼詢問輸入密碼,然後因錯誤而失敗

Unable to run - call install.bat 
2: The system cannot find the file specified 

我不明白的是,如果我運行命令call install.bat沒有runas部分,腳本運行。它需要管理員憑證但是預期的命令失敗。

我有2個問題:

  • 如何運行腳本使用runas命令管理員?
  • 你能解釋一下爲什麼下面的調用是不工作:runas /user:Administrator "call install.bat"

回答

2

使用cmd.exe這是您的車輛來解釋.cmd.bat文件。

runas /user:Administrator "cmd.exe /K install.bat" 

runas /user:Administrator "cmd.exe /C install.bat" 

檢查cmd.exe /?/K/C

注意:/C更可能是你想要的。您的評論後

側面說明:runas/env選項:

/env    to use current environment instead of user's. 
+0

問題是它創建一個新的shell窗口,並清理當前環境(工作目錄,自定義環境變量) – Sydney 2012-03-06 16:46:27

+0

@Sydney:就這樣,這是要走的路。在準備好環境之後,你總是可以編寫一個包裝腳本來調用'install.bat'。除此之外還有'runas/env' ......但你甚至沒有在你的問題中指出這個邊界條件。 – 0xC0000022L 2012-03-06 16:48:57

+0

'/ env'解決了這個問題。 – Sydney 2012-03-07 13:13:00

0

批處理文件將被解釋(CMD)執行。爲了在特權模式下運行腳本,您需要具有提升特權的cmd。嘗試使用cmd而不是呼叫。