根据登录创建并映射驱动器

根据登录创建并映射驱动器

如果用户每次登录时 Windows 文件服务器上还没有文件夹,我想为每个用户创建一个文件夹。

例如,我有用户“jdoe”,我希望能够在该用户第一次登录时自动创建一个名为“jdoe”的共享。然后在创建共享后,每次该用户登录时都使该共享可用。

我已经让该策略发挥作用,如果我手动为用户创建共享名,网络驱动器就会正确映射。最后一部分是如果不存在共享,则创建共享。

策略设置如下:

在此处输入图片描述

有没有办法可以完全自动化这个过程/策略,或者是否需要使用自定义登录脚本或类似的东西来完成?

更新 1:

这些就是文件夹权限的样子。也许这会帮助您更好地了解为什么第一次映射驱动器时没有创建共享。

在此处输入图片描述

以下是经过身份验证的用户的高级选项。

在此处输入图片描述

更新 2:

至少现在我有一些工作了,尽管我并不认为这是最好的或最干净的方法。我创建了两个脚本,一个用于创建共享(如果不存在),另一个用于映射共享。

我在想一定有一种更简单,或者至少不那么复杂、更明显的方法来做到这一点?

答案1

此时的问题很可能是文件夹 \\server\share 的权限。

用户或计算机帐户(我不记得是哪个了……已经有一段时间了)需要能够创建新文件夹 %username%。检查 NTFS 和共享权限。从那里开始它应该会自动发生。至少在我仍然需要设置它的时候它就是这样的。:)

编辑 -

我认为这是用户帐户,而不是计算机。我倾向于使用“授权用户”进行此设置。

您还应该能够将“创建文件夹”权限授予共享文件夹上的“仅限此文件夹”设置。这应该是执行所需操作的最低要求。

编辑-请参阅有关该主题的官方文档这里.具体请看“文件夹重定向权限”部分。

答案2

映射驱动器的组策略实际上只执行映射。它无法自动创建共享。您必须以编程方式执行此操作,可能通过登录脚本。

此链接指向很棒的博文详细说明如何创建一个 PowerShell 脚本,该脚本将检查目录是否存在,如果不存在,则创建它(并且我认为该脚本甚至可以共享它)。

如果将登录脚本的片段与 GPO 结合起来,您将获得适合您需求的解决方案。

答案3

我认为,为了使其工作,您必须按照重定向配置文件或重定向文件夹的方式配置“根”文件夹(用户)。

权限示例

在此示例中,CREATOR OWNER 和 Authenticate Users 的“特殊”权限为:

创建者所有者:完全控制 - “仅限子文件夹和文件”

经过身份验证的用户:“列出文件夹/读取数据”和“创建文件夹/附加数据”- 仅限此文件夹

答案4

我必须结合使用两个不同的脚本才能实现这一点。我首先运行一个 powershell 脚本,检查目录是否存在,如果不存在,则创建它。

创建共享.ps1

$share = $env:username
$sharepath = "\\fileserver\Users\$share"

If (!(Test-Path $sharepath)) {
New-Item $sharepath -type Directory
}

下一个脚本只是删除旧的共享名称并挂载新的共享。

地图驱动器

@echo off
net use * /delete /yes

net use z: "\\fileserver\Test Network"
net use u: "\\fileserver\Users\%username%"

我设置了一个组策略来运行 powershell 脚本,然后运行 ​​bat 文件来在用户登录时映射驱动器。

相关内容