我需要使用(在win7上已弃用) Cacls授予对文件夹的完全访问权限。在我看来,我必须使用cacl、本地化用户名和组名。例如:
cacls foldername /T /E /C /G Users:F这给了我一个错误“没有在帐户名和安全ID之间进行映射”。下一条命令运行正常(俄语中的用户=Пользователи)。
cacls foldername /T /E /C /G Пользователи:F如何在不考虑系统语言的情况下授予对文件夹的完全权限?
发布于 2012-02-02 22:37:13
按照here的说明使用xcacls,并使用SIDs而不是名称(您将找到众所周知的sids here)
如果您由于某种原因而使用cacl,那么google: cacls sid将为您提供一些变通方法,如何进行从sid到名称的反向映射,然后将其提供给cacl。
编辑:忍不住要学习一些新技巧……这个简单的脚本将为您提供给定PC上'Users‘(S-1-5-32-545)组的实际名称:
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=)。还请注意,如果您使用英语版本的工具,则start 中的echo Y可以正常工作。
https://stackoverflow.com/questions/9113206
复制相似问题