You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell 5.1中\\?\前缀的Win32文件命名空间行为异常

PowerShell 5.1 使用\\?\长路径前缀时的间歇性异常问题

我们在使用\\?\前缀处理长路径时遇到了极不稳定的行为,根据Win32文件命名空间规范,该前缀的使用语法是正确的。

针对同一个C:\Users文件夹,执行相关命令时表现完全不一致:

  • 执行Get-Item -Path '\\?\C:\Users':偶尔无输出也无报错
  • 执行Get-Item -LiteralPath '\\?\C:\Users':偶尔报错“Get-Item : Illegal characters in path.”
  • 去掉前缀执行Get-Item -Path 'C:\Users':始终正常返回正确的文件元数据

另外,打开新的PowerShell窗口后重新运行Get-Item -Path '\\?\C:\Users',又能正常工作。

补充测试情况

运行以下批量测试脚本时,发现只有少数几次能正确返回C:\Users的元数据,其余多数情况下都会抛出“Illegal characters in path.”错误:

0..20 | ForEach-Object {
    Start-Job {
        Get-Item -LiteralPath '\\?\C:\Users'
    }
}
Get-Job | Wait-Job
Get-Job | Receive-Job

由于问题是间歇性出现的,我们陷入了排查困境。请问有没有方法可以检查Win32文件命名空间相关库是否已正确加载?我们使用的是PowerShell 5.1版本。


内容的提问来源于stack exchange,提问作者DarkLite1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 06:30:35