我的 Windows 服务器(2016 版和 2019 版)经常崩溃,我注意到使用 BackupPC 备份有时会失败。经过调查,我发现问题总是源于文件路径超过 255 个字符。尽管我反复建议用户使用较短的名称和路径,但他们并没有遵守,这导致用户感到沮丧,因为解决这个问题需要删除有问题的文件并重新启动服务器,从而造成严重中断。
为了寻找解决方案,我探索了允许用户绕过此限制的替代方法。例如,通过 Firefox 保存文件时,路径字符不计算在内,某些第三方工具可以从深层嵌套的目录中提取文件,即使路径很长,这会导致服务器崩溃。
我正在寻求有关实施技术限制的建议,以防止用户创建超过 255 个字符的路径。虽然教育用户是理想的方法,但他们的不情愿需要技术解决方案。任何建议都将不胜感激。谢谢。
答案1
有一种 Generell 方法:
注册表方式
请注意,这可能会造成伤害。
- 因为它违反了 Windows 标准的限制。
使用Regedit
编辑
- HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
- 并添加/更改
LongPathsEnabled
为十六进制 1
使用 Powershell 的懒惰管理员:*
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
使用此方法,重启后,Windows 10、1607+ 就可以使用扩展路径了。在我看来,这可以作为您问题的一种解决方法。
本地 Dos
- 如果您需要删除扩展路径,还有其他解决方案
subst
subst /?
Assigns a drive letter to a path.
SUBST [Drive1: [Drive2:]Path]
SUBST Drive1: /D
Drive1: Drive letter to assign to the path.
[Drive2:]Path Physical drive and physical path to assign to the
virtual drive.
/D Deletes the association for (virtual) Drive1.
SUBST without parameters displays the virtual drives created with SUBST.
这意味着您可以将路径减少至少 250 个字符,根据我过去二十年及以后的知识,这几乎足够了。
致 BackupPC 的通知
BackupPC 的最新版本是 2020
考虑换用像 Veeam 这样的知名商业产品。Veeam
有免费的社区版。
答案2
您可以利用组策略来强制执行路径长度限制。通过配置 下的“启用 Win32 长路径”策略Computer Configuration > Administrative Templates > System > Filesystem
,您可以强制执行最大路径长度为 255 个字符。此外,实施文件系统审核可以帮助跟踪和识别违反路径长度限制的情况:
Security Settings > Advanced Audit Policy Configuration > Object Access
Audit File System >> Succes and Failure