通过 GPO 动态创建映射到用户名的网络驱动器

通过 GPO 动态创建映射到用户名的网络驱动器

再会。

我在大学时学习了 Server 2008 R2,并尝试为大学建立一个小型服务器。

我已经设置了带有 DNS、DHCP 和 WSUS 的 AD。我正尝试将 2 个网络驱动器映射到特定组(以下称为学生)中的每个用户。每个学生应该有一个公共文件夹(课程材料)和一个私人文件夹(他的工作)映射到他的帐户。

有没有办法让 GPO 自动使用 %USERNAME% 变量为私人文件夹创建文件夹并与学生共享?

我可以手动创建公共文件夹和私人文件夹,只是想知道这是否可行以及我该如何进行?

答案1

我相信使用 GPO 首选项不会为您创建文件夹结构,但您可以使用环境变量(例如 %USERNAME%)来允许每个人在共享路径上拥有自己的子文件夹。

我将使用“AD 用户和计算机”控制台在“配置文件”选项卡上配置每个用户的主驱动器,尽管这也可以通过使用 powershell 来实现。


  1. 设置驱动器号和 UNC 路径,例如

\\server1\home\%用户名%

本地路径可能是 C:\NetworkData\Home\

注意:确保权限允许经过身份验证的用户访问此级别,以确保驱动器可以在登录时映射。您可以在文件夹 ACL 上执行此操作。允许每个人对共享权限拥有所有权利,并使用通常的文件夹 ACL 进行严格限制。

这将为您创建目录结构,创建目录后您仍然需要自己设置目录的权限。或者获取一个脚本来遍历它们。

我建议最高级别。即

\\server1\home\joe.blogs\

将允许其他人读/写


  1. 您可以在其下方放置一个子文件夹:

\\server1\home\joe.blogs\Documents

您将删除权限的继承,并且只允许管理员和文件夹所属的人员。因此使其成为私有的。

  1. 然后,您可以使用 GPO 首选项映射该个人文件夹,然后再次将其映射到不同的字母和 %USERNAME% 变量。


虽然我想知道您希望其他用户如何访问他们的“公共”文件夹?

如果您精通 Powershell,这一切都会快得多,因为您可以设置 AD 属性、创建子目录并一次为 AD/Site/OU 中的所有用户设置权限。这里是如何设置主目录。使用 get-aduser 命令行来获取给定的用户集并像这样

`
$Users = Get-ADUser  -SearchBase "OU=Accounts,OU=RootOU,DC=ChildDomain,DC=RootDomain,DC=com" -Filter *;

foreach($User in $users)
{
    Set-ADUser -Identity $User.SamAccountName -HomeDirectory \\server1\home\$User.SamAccountName -HomeDrive H;

}

`

答案2

您可以在学生登录批处理脚本中执行此操作;这可以根据您希望的任何标准映射任意数量的网络驱动器。编写并测试脚本,然后将其放入“ %windir%\SYSVOL\sysvol\<domain name>\Scripts\”。

要测试它,请在您的 AD 中创建一个测试 OU,并在其中放置一个测试用户。为该测试 OU 创建一个组策略,并在“ \User Configuration\Windows Settings\Scripts (Logon/Logoff)”条目中编辑“ Logon”条目,并添加指向您的脚本的登录脚本。

您应该能够通过以测试用户身份登录来测试它,看看它是否按预期运行。如果是这样,请将更改复制到您的学生 OU 的适当组策略中。

关于自动创建学生的私人文件夹,他们应该已经有一个属于他们自己的“我的文档”文件夹。如果您需要第二个私人文件夹,则可能必须手动创建它,或者如果您通过某个脚本创建用户帐户,请修改脚本以为每个用户帐户创建这些私人文件夹并授予适当的权限。

相关内容