Cacls,Windows 7,完全权限,本地名称

时间:2012-02-02 13:32:20

标签: batch-file cacls

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

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

这给了我错误“帐户名和安全ID之间没有映射”。并且下一个命令工作正常(俄语用户=Пользователи)。

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

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

1 个答案:

答案 0 :(得分:4)

使用xcacls代替here并使用SID代替名称(您会找到众所周知的sid here

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

编辑:无法抗拒学习一些新技巧...... 这个简单的脚本将为您提供给定PC上“用户”(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=),则更正为有效。另请注意,如果您使用英文版本的工具,开头的回音Y 会有效。