2010-12-08 20 views
1

我想更改文件的ACL並將「完全權限」設置爲特殊用戶。如何更改窗口中的文件ACL,如果我只知道SID?

我知道CACLS命令cacls . /e /t /p Everyone:f

這隻能如果操作系統是英文。對於德國系統,它必須是 cacls . /e /t /p Jeder:f

我知道用戶「everyone」(S-1-1-0)的well-known SIDs,但好像我不能用cacls一樣使用它們。我試過cacls . /e /t /p S-1-1-0:f

有沒有辦法使用Windows命令行工具進行這項工作?我不允許將軟件或其他命令行工具與我的軟件捆綁在一起。

該解決方案必須從Java進程調用,但這不應該是一個問題。

+1

cacls不能使用SID。如果您是從Java調用它,那麼爲什麼不在調用cacls之前將SID轉換爲程序中的用戶? – Luke 2010-12-08 17:15:27

回答

0

我找到了解決方案的解決方案。我正在使用安裝程序創建工具的供應商提供的庫。

編輯:

解決方案問題:

的安裝製作工具Install4j有一個方法getUserLogin(String sid)其返回值是一樣的東西:WORKSTATION1\User1

我用cacls改變ACL。

+0

如何告訴我們解決方案是什麼,以便這篇文章有一定的價值。否則,我們不妨關閉並刪除它。 – 2011-01-14 15:13:28

1

這可能是Windows版本具體,但看

whoami /groups 

和分析結果。在Windows 7中,這個

whoami /groups | find "S-1-1-0" 

看起來這對我來說

C:\>whoami /groups | find "S-1-1-0" 
Everyone         Well-known group S-1-1-0 
        Mandatory group, Enabled by default, Enabled group 

有在此得到一個整體的Win32 API。下面是使用從C#

http://www.ms-news.net/f2438/setpermission-everyone-c-4997971.html

相關問題