簡體   English   中英

通過java代碼以管理員身份從cmd運行應用程序

[英]running application from cmd as administrator through java code

我從我手動打開的CMD中執行了netsh命令,方法是從開始處右鍵單擊CMD圖標,然后從選項中選擇以管理員身份運行。現在一切正常,現在我嘗試通過Java代碼運行netsh命令,然后它不起作用。當我運行該代碼時什么也沒有發生。我想問一問我可以通過從我的Java代碼中調用運行時類的適當方法來從cmd運行像notepad.exe這樣的應用程序,但是如何打開管理員擁有與我的Java代碼相同的應用程序權限。 r.exec("notepad"); 其中r是對運行時類的對象引用,它將運行應用程序,但打開的記事本將不在管理員模式下。實際上,我認為從CMD學習以管理員模式運行應用程序已足夠完成相應的CMD命令將作為參數傳遞給Runtime類的exec()方法,因此我的問題是:

  1. 如何在具有管理員權限的Windows 8中從CMD運行任何應用程序?
  2. 我想實現使用netsh的方式是一件好事,或者還有其他方法必須使用我的Java代碼中的這些命令。
  3. 我在谷歌搜索時看到了一些命令,但是它們對我不起作用,例如runas /user:administrator "notepad.exe"等。

謝謝

您不能使用runas /user:administrator方法,因為這需要密碼輸入,出於安全原因,您不能從外部源(例如Java應用程序)提供該密碼。

過去我遇到過類似的問題,我使用PsExec解決了該問題,並使用管理員用戶名和密碼在localhost上運行了該進程,從而使我能夠以管理員身份執行外部應用程序。

使用您的示例,您可以運行:

PsExec.exe \\\\127.0.0.1 /accepteula -u USER -p PASSWORD notepad.exe

“ / accepteula”標志阻止了首次在計算機上運行時要求交互式接受EULA的要求。

這種方法可能需要一些調整才能使用設置,但是希望它可以為您提供一個起點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM