2011-04-04 52 views
0

我一直沒有成功獲取應具有AllPermissions以在Vista或Windows 7上將文件寫入Windows/System32的Java WebStart應用程序。雖然我不相信這是可能的,但也許在那裏是將此文件夾的完整性級別降低到「中」的一種方法?在Vista中更改System32文件夾的完整性級別

我越來越絕望,我沒有超過瘋狂的註冊表黑客做到這一點。我們有一款在Windows XP上運行良好的產品應用程序,但是一個新的潛在客戶堅定不移地決定只維護Windows 7或Vista工作站。

我欣賞任何幫助或建議,尤其喜歡聽任何人的話,如果這是不可能的。請不要評論這可能是多麼不安全和危險,我知道風險。

+1

爲什麼你的應用程序*需要*寫入System32?有沒有辦法改變你的應用程序寫入另一個目錄?這將減輕在Windows 7 *和* XP上成爲管理員的需要。 – 2011-04-04 19:50:17

+0

需要從未命名的第三方外圍設備的Java SDK驅動器。這個SDK當然包含幾個DLL和本機設備驅動程序,顯然需要在此文件夾中。我想這也許只是因爲這些需要在PATH環境變量上,但仍然存在一些問題。此外,這個設備提供了一個非常特定的目的,並且基本上是唯一一個伴隨Java SDK的設備。 – 2011-04-05 10:51:35

回答

2

正確的解決方案是從安裝程序中將所需的DLL放在system32文件夾中。

您的MSI安裝程序將知道如何提示用戶提升爲管理員,因此您有權將文件添加到用戶System32文件夾。

如果用戶的System32中沒有(或升級)管理員,您將無法修改這些文件;這是安全操作系統的一個基本約束。

+0

這是一個很好的觀點,但是應用程序不是從MSI安裝的,而是從Java WebStart安裝的。這樣做的好處是,當我更新Web服務器上的軟件版本時,每個工作站都會將其下載到WebStart緩存中,並在下次運行該緩存。我知道有些服務可以在MSI安裝程序中完成,但最後我檢查了它們是專有的和昂貴的。 – 2011-04-05 15:00:22

+0

如果您希望您的應用程序能夠在沒有提升的情況下進行安裝,則需要將其安裝在其他地方。您應該遵循Google Chrome的操作,並安裝在'C:\ Users \ MapleShaft \ AppData \ Local \ SuperCoolJavaApp \ CoolBeans.exe'中。這是您應該存儲每用戶非漫遊應用程序數據的地方。 – 2011-04-05 15:10:16

0

我想出瞭如何做到這一點的Vista,但我真的因爲我所做的而感到不安。

在那裏有一個免費的程序,你可以下載,它可以讓你改變文件夾的完整性級別。 http://www.minasi.com/apps/

但是,如果嘗試將System32更改爲「中等」完整性,則在命令行中使用此程序會導致拒絕訪問。這是因爲管理員對此目錄沒有明確的權限。

這是讓它變得非常可怕的地方,爲了讓自己完全控制System32,你必須讓Administrator成爲該目錄的所有者。當前所有者最初是TrustedInstaller。

因此,我將System32的所有者更改爲Administrator,給予管理員FullControl,然後使用管理員命令提示符中的chml給System32中等完整性。

我現在想知道System32擁有不同的所有者會產生什麼樣的後果,但是如果Vista允許你這樣做,那麼它就不會那麼糟糕。對???

+0

那麼,將System32設置爲中等完整性並不能解決我的問題。這個問題顯然在別處,但這完全是一個不同的問題,對於所有意圖和目的,這個具體問題都得到了回答。 – 2011-04-05 15:02:13

+1

更改System32上的ACL是打破Windows的最簡單方法之一(如使Windows停止工作)。您還可以將您的客戶機器打開到想要寫入System32的互聯網上的任何惡意軟件。 – 2011-04-05 16:23:28

+0

順便說一句,知識庫文章885409有一些指導:http://support.microsoft.com/kb/885409。閱讀「文件系統和註冊表訪問控制列表修改」部分。 – 2011-04-05 16:27:27

1

首先,作爲CHML的作者 - 您提到的應用程序 - 不幸的是,降低Windows文件夾的完整性並不是一個好主意(如您所見)。

這就是說,有一種方法可以讓事情回到你想要的方式 - 一些,實際上,但是最簡單的方法就是

1)創建一個可啓動的WinPE光盤或USB棒 2)加我chml.exe可執行文件 3)引導您的系統

並且在那時您可以使用chml重新提高完整性級別。它的工作原理是因爲在WinPE下你可以作爲系統運行,並且可以提升你的IL。 (文檔(ahem)不會提到這個問題。:-)

相關問題