如何使用CMD获取文件夹上的ACL角色/权限?

时间:2016-10-19 09:08:05

标签: batch-file cmd scripting localization acl

我想知道如何使用cmd获取文件夹上的可能权限?

我会尝试更多地解释我的需要,以便你理解我的问题:

我正在使用icacls更改MyFolder上的ACL。

我正在使用像这样的命令:

icacls "%ProgramFiles(x86)%\MyFolder" /grant:r Administrators:F

icacls "%ProgramFiles(x86)%\MyFolder" /grant:r Users:(OI)(CI)F /t /c

问题在于,如果我在法国计算机上运行它,它会给我一个批准错误,例如:"此工作站与主域之间的信任关系失败" ....

在做了一些测试后,我明白问题在于我使用的是Administrators,而且我必须使用Administrateur(在法语Windows上运行我的脚本时)。

"用户"同样的事情,我应该使用" Utilisateurs"而不是"用户"在我的命令,以便它的工作。

我需要知道的是,Windows是否有一个变量用于帮助我进行本地化,使用cmd自动获取角色,以替换"管理员","用户"通过这个变量,我的代码可以在任何Windows上运行它的语言......

我需要的是:

icacls "%ProgramFiles(x86)%\MyFolder" /grant:r %Admin%:F


icacls "%ProgramFiles(x86)%\MyFolder" /grant:r %Users%:F

以便管理员在英语计算机上和Administrateur在法语计算机上自动替换%Admin%,等等。

我实际使用的完整语法是:

icacls "%ProgramFiles(x86)%\MYFOLDER" /grant:r Administrators:F /grant:r SYSTEM:F /grant Users:(OI)(CI)F /t /c

1 个答案:

答案 0 :(得分:1)

您可以使用well known SID string constants

return $this->belongsToMany('users')->withPivot('timestamps');

如果其他用途需要这些名称,那么您可以向WMI索取所需信息

icacls "%ProgramFiles(x86)%\MyFolder" /grant:r *BA:F