我们有一个 Windows 2008 R2 文件服务器为大约 600 个用户共享主文件夹。当每个用户在自己的工作站上登录时,这些文件夹被映射到一个共享驱动器,而该映射驱动器又被设置为每个用户配置文件的 windows 文档库中的默认位置,包括我们每个人的默认配置文件机器。首次登录新机器,您的文档库将指向文件服务器。对于笔记本电脑用户,我们还使用脱机文件功能,这样即使他们不在工作中也能跟随他们。
我的问题是,查看服务器上的这些文件夹,它们都在资源管理器中显示为“我的文档”,而不是实际的文件夹名称(设置为与用户名匹配)。如何防止 Windows 资源管理器执行此操作?
有一个更简单的方法,非破坏性的,它针对负责此行为的实际 Desktop.ini 条目。去:
组策略 -> 用户配置 -> 首选项 -> Windows 设置 -> Ini 文件
使用以下设置创建一个新的 Ini 文件条目:
行动:删除
文件路径: %homeshare%\desktop.ini
部分名称: .ShellClassInfo
属性名称: LocalizedResourceName
确保您在“常用”选项卡下启用在登录用户的上下文中运行。
这将从用户的 desktop.ini 文件夹中删除有问题的行,修复文件夹显示名称行为,并保留其他所有内容,包括任何其他用户设置的文件夹视图自定义等。没有混乱,没有大惊小怪。
(来自香料厂)
然后,您会得到一个显示真实文件名的额外列。您可以通过这样做将其设为文件夹的默认值。
这是资源管理器解释
desktop.ini
位于每个文件夹中的文件。这令人抓狂且无益,微软承认这一点,但没有提供任何有用的建议。旧的“这种行为是设计使然”的损失借口......在新安装时,我已经开始重组我的共享目录层次结构,使其以用户为中心,而不是以目录类型为中心。我没有为每个用户创建一个子目录,而是为每个用户创建一个子目录,并为他们的各种目录创建一个子目录,而不是具有“文档”目录和“配置文件”目录(桌面”目录等)的层次结构,例如:
我真的很喜欢这种方法,比旧方法更好。我特别喜欢我的配置脚本可以在“Bob”目录中设置一个 ACL,而当它们存储在自己的层次结构中时,在每个目录中设置一个 ACL。它还使查看个人的总空间使用情况变得更加容易,因为我只需要
du
一个目录。我的文件夹重定向策略需要稍作更改,用户配置文件路径也需要更改(以 结尾,
%username%\Profile
而不仅仅是%username%
),但这是一个小改动。我只做了几个月,但到目前为止,它运作良好。拒绝您自己(或您的安全组)对 desktop.ini 的读取权限 - 下次刷新文件夹时,它将显示实际文件夹名称,而不是“我的文档”
只需从所有用户文件夹(共享的子目录)中删除 desktop.ini。我对此进行了测试,它立即显示了正确的名称。
desktop.ini 默认是隐藏的,这让它有点棘手,但我看不到用户在它消失后会错过的任何东西;那里有所有三行信息。
编辑:要快速清除整个共享文件夹结构中的所有 desktop.ini 文件,请使用以下命令:(警告:这将删除用户对其文件夹、图标、布局设置等的自定义?)
要“快速修复”此问题(这将立即返回他们的姓名,但如果您没有按照 Uthacalthing 的建议设置新的 ini 策略,当用户登录时将重新设置),请使用 CMD 或 Powershell 删除桌面。 ini 文件或将其重命名为其他名称。
更改 ACL 权限以拒绝管理员对该文件夹和子文件夹中的文件的读取访问权限。添加新用户后,您可能需要再次运行它。
我在命令行窗口中使用了以下命令。您应该以管理员身份运行。
icacls "P:\users\desktop.ini" /deny 管理员:R /T /C
在资源管理器中添加“文件名”列,您会看到用户名