2012-10-04 84 views
0

以管理員身份在Windows 2008中運行.bat文件。通過windows中的vb腳本檢查「以管理員身份運行」快捷方式文件(.lnk)

我以Windows用戶身份安裝了Java應用程序(用戶名爲Test,用戶組爲Admin)。此應用程序正在使用JSW並生成.bat文件以在Windows平臺中啓動應用程序。這個.bat文件是在Maven插件的幫助下創建的。

現在的問題是,如果我點擊.bat文件作爲正常的Windows用戶與默認安全設置,然後它不會啓動我的應用程序。如果我以「以管理員身份運行」的方式啓動.bat文件,則應用程序啓動。如果我更改'測試'用戶的安全設置並且make是自由的,那麼我可以啓動應用程序而不運行'以管理員身份運行'。

我想自動執行此步驟。我不希望用戶執行「以管理員身份運行」或更改其安全設置。因此,我想出了一個解決方案,在安裝程序安裝應用程序後運行一些vb腳本,以便文件對該.bat文件進行一些安全設置,以便'Test'用戶可以一步啓動.bat文件。這是可能的還是更好的解決方案?

順便說一句,我使用安裝Anywhere的安裝程序。

嘗試一段時間後,我發現我也可以更改指向.bat文件的快捷方式文件的設置(高級屬性)。此快捷方式具有高級屬性,其中有「以管理員身份運行」選項。如果該選項被選中,那麼我的問題就解決了。所以我想知道是否有可能從vb腳本檢查該選項?如果是,那麼提示?如果沒有,那麼交替做什麼呢?

我發現http://nsis.sourceforge.net/ShellLink_plug-in但我不知道如何做到這一點在VB腳本。

+0

爲什麼這個標籤Java和VB.NET? –

回答

0

我不認爲有可能在沒有提示輸入密碼的情況下在批處理文件中執行此操作。你可以讓一個小的C++啓動器來請求特權,然後運行你的java應用程序。

0

您使用的是哪個版本的JSW?

從JSW 3.5.7版開始,當您將Java應用程序作爲Windows服務啓動/停止時,它將自動向管理員權限請求提升。

這是從JSW release notes爲3.5.7:

實現的方式安裝,刪除,啓動,停止等,包裝 從非提升(UAC)Windows服務安慰。包裝是 透明使用子進程提升。這需要從Windows Vista和2008開始 ,以便與Windows Service Manager暢通交互。

乾杯,

+0

我正在使用JSW 3.2.x,我現在沒有升級到3.5.7+的選項,所以你有什麼解決方法嗎? – Mitesh

+0

您可以修改腳本,以便啓動帶有runas的Wrapper可執行文件http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/runas.mspx?mfr=true – Naytzyrhc

相關問題