![使用用户范围的 GPO 创建文件夹并设置权限](https://linux22.com/image/736535/%E4%BD%BF%E7%94%A8%E7%94%A8%E6%88%B7%E8%8C%83%E5%9B%B4%E7%9A%84%20GPO%20%E5%88%9B%E5%BB%BA%E6%96%87%E4%BB%B6%E5%A4%B9%E5%B9%B6%E8%AE%BE%E7%BD%AE%E6%9D%83%E9%99%90.png)
使用用户范围的组策略首选项,我们正在为服务器上的新用户创建一个主文件夹。此主文件夹从根主共享继承了“创建者所有者”权限。现在,我们想在主文件夹下创建第二个文件夹,名为 Scans。但是,我们想更改该文件夹的权限,以便用户可以完全控制子文件夹和文件 - 我们不想仅仅继承“创建者所有者”权限。问题是扫描仪将文件放入该文件夹并成为文件的所有者,导致用户失去对文件的访问权限。
我很好奇关于如何做到这一点有哪些想法?
我认为我知道我有哪些选择,但没有一个是最佳的。首先,我不知道用户组策略首选项可以设置文件/文件夹权限 - 它们都是计算机范围的,在这种情况下不起作用。此外,登录脚本执行顺序先于组策略首选项文件夹项,这需要至少 2 个 GPO 才能解决,而我讨厌这个时代的登录脚本。
因此,目标是不使用登录脚本,使用单个 GPO 项,并在第一次登录时对其进行完全配置(无需登录两次,或等待 gp 刷新等)
目前我能想到的唯一解决方案是使用单个 GPO 和登录脚本在用户级别设置权限。因此,最终看起来最好的方法是创建一个登录脚本,该脚本创建主文件夹、创建扫描文件夹,然后设置权限。但是,这太丑陋了,而且也很麻烦,因为我们的 GPO 出于多种不同原因使用项目级定位,而登录脚本不支持项目级定位。
答案1
因此,目标是不使用登录脚本,使用单个 GPO 项,并在第一次登录时对其进行完全配置(无需登录两次,或等待 gp 刷新等)
经过许多个人的动荡,并且没有对这个问题的答案之后,我想到了我认为除了使用完整的登录脚本之外最好的解决方案。
我能够扩展现有的 GPO,该 GPO 当前会创建用户的主文件夹和用户主文件夹下的 Scans 文件夹。然后,我向此 GPO 添加了登录脚本,并对其进行了如下配置:
Name: %WINDIR%\System32\cmd.exe
Paramaters: /c icacls.exe H:\Scans /grant %USERDOMAIN%\%USERNAME%:(OI)(CI)(IO)(F)
有几件事使这成为可能:
- Windows 8.1 及更新版本将登录脚本延迟 5 分钟(Windows 10 的最新版本似乎无论 GPO 如何都会强制执行此操作) - 因此它满足首次登录时发生这种情况的要求。
- 另一个 GPO 首先将用户的主文件夹连接到 H:。我们的用户拥有不同的主服务器,因此我无法使用通用 UNC 路径。但是所有用户都有一个 H: 驱动器。使用 GPO 优先级,此 GPO 在创建文件夹并运行登录脚本的 GPO 之后运行。
不幸的是,它确实使用了“登录”脚本,但它直接调用命令,而不必创建脚本文件并从共享位置运行它。而且,它依赖于第二个 GPO(我们已经有了)。这可以合并为一个 GPO,但这样就需要两次登录才能完成,因为如果将组策略驱动器映射合并到同一个 GPO 中,则它们在组策略文件夹之前应用。
完成后,用户第一次登录时会发生以下情况:
- GPO #1 运行并创建用户的主文件夹和扫描文件夹。
- GPO #2 运行并将用户的主文件夹映射到 H:\
- 5 分钟后,GPO #1 中的登录脚本执行并更新用户扫描文件夹的权限。