3

我需要使用(在 win7 上已弃用)Cacls 授予对文件夹的完全访问权限。在我看来,我必须使用 cacls 本地化用户名和组名。例如:

cacls foldername /T /E /C /G Users:F

这给了我错误“未完成帐户名称和安全 ID 之间的映射”。下一个命令运行良好(俄语用户 = Пользователи)。

cacls foldername /T /E /C /G Пользователи:F

无论系统语言如何,如何授予文件夹的完全权限?

4

1 回答 1

4

xcacls此处所述使用,并使用 SID 而不是名称(您会在此处找到众所周知的 sid )

如果您由于某种原因被 cacls 卡住,那么google: cacls sid将为您带来一些解决方法,如何进行从 sid 到 name 的反向映射,然后将其提供给 cacls

编辑:忍不住学习一些新技巧......这个简单的脚本将为您(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

把它放到一个带有 vbs 扩展名的文件中(假设usersName.vbs)。

现在运行:

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

完毕 :-)

delims=编辑:如果名称中有空格(添加),则更正为工作。另请注意,如果您使用该工具的英文版,则在开始时 echo Y 有效

于 2012-02-02T14:37:12.737 回答