【问题标题】:How to check Parental Controls with Objective-C如何使用 Objective-C 检查家长控制
【发布时间】:2015-07-23 20:07:42
【问题描述】:

我需要知道当前用户是否由 Mac OS X 家长控制(更具体地说,应用年龄限制)管理,以阻止应用的某些内容。我怎样才能做到这一点?任何这些都足够了。

也接受可以使用 Objective-C 但不一定使用 Objective-C 的方法,例如 bash 命令或 AppleScript 命令。

编辑:应用年龄限制可以在这里找到:https://ibb.co/mOZyww

【问题讨论】:

    标签: objective-c macos parental-control


    【解决方案1】:

    首先,我不确定你的意思是什么

    应用年龄限制

    在 macOS 10.13 上,我只看到将应用程序限制在白名单中的选项;我无法根据年龄配置限制。

    无论如何,家长控制存储在本地目录服务中,在相关用户的mcx_attributes 属性中。

    (mcx 指的是旧的托管偏好框架)

    您可以使用 Directory Utility 或 dscl(使用 mcx 插件)通过 UI 浏览此内容。

    如果您运行dscl,则可以使用cdls 等浏览目录服务。

    例如,我可以导航到我的 testuser:

    cd /Local/Default/Users/testuser
    

    然后用mcxexport转储家长控制

     -mcxexport .
    

    这将为您提供 XML 格式的已配置家长控制。

    查看dscl . -mcxhelp了解更多信息。

    更新

    切换“限制:应用到:”设置会更新此首选项键:

    <key>gamesLimit</key>
        <dict>
            <key>state</key>
            <string>always</string>
            <key>value</key>
            <integer>300</integer>
        </dict>
    

    您必须玩弄它才能找出相应的值(例如 300 == 12 岁以上)

    【讨论】:

    • 这就是我所说的“应用年龄限制”:ibb.co/mOZyww第六个选项。
    • 我尝试使用cd /Local/Default/Users/testusertestuser 替换为我的用户短名称,但收到No such file or directory 错误。
    • 你的答案是找到我要找的东西的关键,所以谢谢 :) 但是,如果有人想直接检索该值,他/她将使用dscl . mcxread /Users/testuser com.apple.iTunes gamesLimit 获得更直接的回报
    • 顺便说一句:1000 =&gt; No limit; 100 =&gt; 4+; 200 =&gt; 9+; 300 =&gt; 12+; 600 =&gt; 17+
    • 更正我自己,该命令的返回值更易于解析:dscl . mcxexport /Users/testuser com.apple.iTunes gamesLimit
    猜你喜欢
    • 2011-03-11
    • 2011-08-08
    • 1970-01-01
    • 2016-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-24
    相关资源
    最近更新 更多