1

我想更改文件的 ACL 并将“完全权限”设置为特殊用户。

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

但这仅在操作系统是英文的情况下才有效。对于德国系统,它必须是 cacls . /e /t /p Jeder:f.

我知道用户“每个人”(S-1-1-0)的众所周知的 SID,但似乎我不能将它们与 cacls 一起使用。

我试过了cacls . /e /t /p S-1-1-0:f

有没有办法使用 Windows 命令行工具来完成这项工作?我不允许将此作业的软件或其他命令行工具与我的软件捆绑在一起。

该解决方案必须从 Java 进程中调用,但这应该不是问题。

4

2 回答 2

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

于 2010-12-08T16:54:39.497 回答
0

我找到了解决方案。我正在使用我的安装程序创建工具供应商提供的库。

编辑:

问题解决方案:

Setup-Creation ToolInstall4j有一个方法getUserLogin(String sid),它的返回值类似于:WORKSTATION1\User1

我曾经cacls更改ACL。

于 2011-01-14T15:11:31.707 回答