【问题标题】:Cacls, Windows 7, full permissions, local namesCacls、Windows 7、完全权限、本地名称
【发布时间】:2015-01-31 04:17:24
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: batch-file cacls


    【解决方案1】:

    使用xcacls 代替here 的描述,并使用SID 代替名称(您会发现众所周知的sids 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=)。另请注意,如果您使用该工具的英文版,开头的 echo Y 会起作用。

    【讨论】:

    • 我必须对 win2k - win7 范围内的系统使用统一解决方案。工具必须是标准的。我不能让用户安装额外的实用程序。
    • 您能否添加一些解释您打算如何工作?这些电脑在你的控制之下吗?你(用户)可以运行脚本吗?
    • 我为用户提供了其中的归档文件和批处理文件。用户解压缩存档并启动 Bat 文件。然后按照指示。脚本将文件复制到某个位置,并为每个人提供对该文件夹的完全访问权限。这就是它应该如何工作的方式。我自己永远不会使用脚本。我假设用户使用管理员权限运行批处理,否则他将无法写入某些系统下的某些文件夹。但用户不应使用具有管理员权限的已安装文件。这就是为什么我需要使用 cacls。
    • @AleksandrKravets 好吧,xcacls(我喜欢的那个)只是一个 vbs 脚本,虽然有一个安装程序,但我认为除了解压缩脚本(一次)之外,你不需要它做任何事情) ...所以你可以在你的发行版中包含实际的 xcalcs.vbs 并使用批处理文件中的 cscript 运行。
    • 感谢您的回答。我还将根据您的建议在 Google =) 中发布我找到的解决方案。
    猜你喜欢
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 2019-10-09
    • 2016-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多