我有一个 Windows Server 2008 R2 域和位于同一台服务器上的共享文件夹,每个人都可以访问该文件夹,并且用户将一些东西放在这个文件夹中。
我正在努力解决文件名长度问题,以及如何限制用户存储和创建文件名过长的文件。
如果有人有关于限制域内用户编写更长文件名的方法的信息,将不胜感激。
只是为了澄清一下,文件名所需的限制例如是 40 个字符,现在他们可以设置最大值,例如 248 个字符。
答案1
248 个字符的限制是在文件系统级别设置的。
唯一的可能性是如果你使用一些自定义文件系统或使用钩子来控制每个文件创建的程序(这可能会过度使用你的 CPU)。
另一个可能有效的选项是创建一个名称长度为 208 个字符的网络共享 - 这将阻止用户创建更长的文件名。
答案2
我觉得你可以这样做文件组定义在文件服务器资源管理器的文件筛选管理功能中,但文件组定义似乎不支持正则表达式。
在 Windows Server 2012 R2 中,功能扩展至文件服务器资源管理器在自动分类中加入正则表达式可能有助于您识别“长文件名”的反应性。
由于您使用的是 Server 2008 R2,我能想到的唯一其他事情就是一些 PowerShell 黑客技术:
$Files = Get-ChildItem | ? { !$_.PSIsContainer }
ForEach ($File in $Files) {
if ( $($File.Name).Length -gt 40 ) {
# You may want to be nicer to your users than this...
Remove-Item $File.Name -WhatIf
}
}