我需要使用(在 win7 上已弃用)Cacls 授予对文件夹的完全访问权限。在我看来,我必须使用 cacls 本地化用户名和组名。例如:
cacls foldername /T /E /C /G Users:F
这给了我错误“未完成帐户名称和安全 ID 之间的映射”。下一个命令运行良好(俄语用户 = Пользователи)。
cacls foldername /T /E /C /G Пользователи:F
无论系统语言如何,如何授予文件夹的完全权限?
我需要使用(在 win7 上已弃用)Cacls 授予对文件夹的完全访问权限。在我看来,我必须使用 cacls 本地化用户名和组名。例如:
cacls foldername /T /E /C /G Users:F
这给了我错误“未完成帐户名称和安全 ID 之间的映射”。下一个命令运行良好(俄语用户 = Пользователи)。
cacls foldername /T /E /C /G Пользователи:F
无论系统语言如何,如何授予文件夹的完全权限?
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 有效。