Как изменить файл ACL в Windows, если я знаю только SID? - PullRequest
1 голос
/ 08 декабря 2010

Я хочу изменить ACL для файла и установить «полные права» для специального пользователя.

Я знаю команду cacls cacls . /e /t /p Everyone:f

Но это работает только если английская ОС.Для немецких систем это должно быть cacls . /e /t /p Jeder:f.

Я знаю хорошо известные SID пользователя "все" (S-1-1-0), но это выглядит какесли я не могу использовать их с cacls.

Я пробовал cacls . /e /t /p S-1-1-0:f.

Есть ли способ использовать инструменты командной строки Windows для этих заданий?Мне не разрешено связывать программное обеспечение или другие инструменты командной строки для этой работы с моим программным обеспечением.

Решение должно вызываться из Java-процесса, но это не должно быть проблемой.

Ответы [ 2 ]

1 голос
/ 08 декабря 2010

Это может зависеть от версии 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-каждый-с-4997971.html

0 голосов
/ 14 января 2011

Я нашел решение. Я использую библиотеку от поставщика моего инструмента создания программы установки.

редактирование:

Решение проблемы:

У инструмента создания-установки Install4j есть метод getUserLogin(String sid), его возвращаемое значение выглядит примерно так: WORKSTATION1\User1

Я использовал cacls для изменения ACL.

...