不管 Windows 语言如何,如何让 ICACLS 命令设置一个文件夹,让每个人都拥有完全访问权限?

Gee*_*_SO 10 windows language permissions file-permissions icacls

背景

说我有这个命令

icacls C:\FullyAccessibleFolder /grant Users:(OI)(CI)F

这在英语版本的 Windows 中工作正常,但在法语版本中似乎不起作用,出现以下错误,大概是由于Users法语不同。在 Windows 中Everyone被翻译Tout le monde,所以这也不是解决方案。

Users: Le mappage entre les noms de compte et les ID de sécurité n'a pas été effectué.

谷歌翻译为

Users: The mapping between account names and security IDs was not performed.

是否有我可以使用的命令来设置文件夹并递归地设置其所有内容,以便以适用于不同语言版本的 Windows 的方式对所有用户拥有完全权限?

来自网络的内容

这个页面有一个基本相似的问题,讨论如何用德语和法语Everyone变成。JederTout le monde

Dav*_*ill 11

在法语版本中不起作用,大概是因为Users不同

您有三个选项,详情如下:

  1. 使用使用语言门户获取翻译名称

  2. UsersSID 中检索本地化名称

  3. 使用UsersSIDicacls


选项 1:使用语言门户(Microsoft 术语的规范资源)

搜索用户返回:

本地化 Microsoft 产品中的翻译

    English Translation         Product
    Users   Utilisateurs        Windows 7
    Users   des utilisateurs    Windows 7
    Users   Utilisateurs        Windows 8 Modern Voice
    Users   Utilisateurs        Windows 8
    Users   Utilisateurs        Windows 8.1
    USERS   UTILISATEURS        Windows 8.1
    Users   Utilisateurs        Windows 10
    Users   des utilisateurs    Windows 10
    Users   Utilisateurs        Windows 10 Anniversary Update
    users   utilisateurs        Windows 10 Anniversary Update
Run Code Online (Sandbox Code Playgroud)

这表明以下命令可能有效:

icacls C:\FullyAccessibleFolder /grant Utilisateurs:(OI)(CI)F
Run Code Online (Sandbox Code Playgroud)

选项 2:从UsersSID ( S-1-5-32-545) 中检索本地化名称

SID:S-1-5-32-545

名称:用户

描述:一个内置的组。操作系统初始安装后,唯一的成员是 Authenticated Users 组。当计算机加入域时,域用户组将添加到计算机上的用户组。

来源Windows 操作系统中的众所周知的安全标识符

要检索本地化Users组名称:

这个简单的脚本将为您(S-1-5-32-545)提供给定 PC 上“用户”组的实际名称:

    Set objWMIService = GetObject("winmgmts:\\.\root\cimv2")
    Set objAccount = objWMIService.Get ("Win32_SID.SID='S-1-5-32-545'")
    Wscript.Echo objAccount.AccountName
Run Code Online (Sandbox Code Playgroud)

将其放入带有 vbs 扩展名的文件中(假设 usersName.vbs)。

现在运行:

echo Y|for /f "delims=" %i in ('cscript -Nologo usersName.vbs') do cacls foldername /G "%i":F
Run Code Online (Sandbox Code Playgroud)

来源CACLS,Windows 7的完全权限,本地名称WMZ


选项 3:将UsersSID 与icacls

使用以下命令:

icacls C:\FullyAccessibleFolder /grant *S-1-5-32-545:(OI)(CI)F
Run Code Online (Sandbox Code Playgroud)

哈里·约翰斯顿( Harry Johnston) 的来源评论


Ton*_*nny 7

您需要不按名称指定 AD 组,而是按 SID 号指定。
对于“EveryOne”、“域用户”等标准组,有标准化的 SID 编号,可在 MSDN 页面众所周知的安全标识符 (SID) 上找到

以下是最常见的相对标识符。

在此处输入图片说明

SID 的结构描述如下:

当使用标准表示法将 SID 从二进制格式转换为字符串格式时,SID 的组件更容易可视化:

SRX-Y1-Y2-Yn-1-Yn

    Component                   Definition

    S                         Indicates that the string is a SID
    R                         Revision level
    X                         Identifier authority value
    Y            A series of subauthority values, where n is the number of values
Run Code Online (Sandbox Code Playgroud)

例如,内置管理员组的 SID 以标准化的 SID 表示法表示为以下字符串:

S-1-5-32-544

此 SID 有四个组成部分:

  • 修订级别 (1)

  • 标识符权限值(5,NT 权限)

  • 域标识符(32,内置)

  • 相对标识符(544,管理员)

安全标识符的工作原理