在 Windows Server 2016 上忽略 LongPathsEnabled 设置

vic*_*vic 5 powershell windows-server-2016

我需要能够在 Windows Server 2016 系统上创建长度超过 260 个字符的路径结构。

在彻底阅读各种来源后,我了解到 Windows Server 2016 版本 1607 应该支持长路径。

我激活了相应的本地组策略设置(计算机配置 -> 管理模板 -> 系统 -> 文件系统 -> 启用 Win32 长路径)并验证注册表项是否已适当更改(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem -- LongPathsEnabled 设置为 0x1)。

我重新启动了系统,以验证长路径现在是否正常工作。根据 GPRESULT.EXE,策略设置正确。

截图 Gpresult.html

因此,我再次尝试在 Powershell 中在我的用户配置文件文件夹中创建一个长路径名。不幸的是,仍然没有运气,我一直看到错误消息:

New-Item : The specified path, file name, or both are too long. The fully qualified file name must
characters, and the directory name must be less than 248 characters.
At line:1 char:1
+ New-Item -Type Directory $longdir
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (C:\Users\myUser...adföklasdfjölkj:String) [New-Item], Pa
    + FullyQualifiedErrorId : CreateDirectoryIOError,Microsoft.PowerShell.Commands.NewItemCommand
Run Code Online (Sandbox Code Playgroud)

我什至验证了 Powershell.exe 的清单,并且可以确认启用了长路径。

  <application xmlns="urn:schemas-microsoft-com:asm.v3">
    <windowsSettings>
      <longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
    </windowsSettings>
  </application>
Run Code Online (Sandbox Code Playgroud)

一切似乎都正确,但我仍然无法创建超过 260 个字符的文件路径。

顺便说一句,我在另一个系统上做了完全相同的事情,并且一切正常。只是这个其他系统是我自己的系统,而我遇到问题的系统是客户的系统。

知道我还能在这里尝试什么吗?

最相关的官方来源:

更新

按照上述方式配置系统后大约 4-5 小时,它就可以正常工作了。我没有改变我的测试程序,我没有改变任何设置,我没有再次重启,它只是突然起作用。如果有人对此有解释,我会非常有兴趣阅读它。我很困惑。

Amr*_*haa 0

您当时运行过组策略更新命令吗?

在提升的cmd中运行gpupdate

也许您没有这样做,4-5 小时后您所做的组策略更新已同步,这就是它起作用的原因。