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

PowerShell中New-Item创建目录联结时Volume ID路径损坏的解决方法

解决PowerShell中使用Volume ID路径创建目录联结的问题

问题根源

New-Item在处理DOS设备路径(如Volume ID格式)时,会错误转换路径前缀,导致联结指向异常。直接调用cmd /c mklink失败通常是因为PowerShell的引号转义或参数传递方式有误。

可行解决方案

1. 正确调用cmd的mklink命令

PowerShell中调用mklink需注意路径的引号嵌套处理,尤其是路径包含空格时。创建目录联结的正确语法:

cmd /c "mklink /J `"C:\Path\To\Junction`" `"\\?\Volume{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}\Some_Path`""
  • /J 参数指定创建目录联结类型
  • 用嵌套双引号"包裹路径,避免PowerShell解析时破坏路径结构

2. 使用.NET的Directory.CreateSymbolicLink方法

.NET原生API能正确识别Volume ID格式路径,避免PowerShell cmdlet的路径转换问题:

using namespace System.IO

# 定义联结路径与目标Volume ID路径
$junctionPath = "C:\MyJunction"
$targetPath = "\\?\Volume{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}\Some_Path"

# 直接创建目录联结
[Directory]::CreateSymbolicLink($junctionPath, $targetPath)

该方法会原样使用传入的目标路径,不会修改Volume ID前缀格式。

3. 验证Volume ID根路径的替代方案

由于Test-Path无法识别Volume ID根路径(如\\?\Volume{...}\),可以用mountvol命令验证:

$volumePath = "\\?\Volume{aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee}\"
mountvol $volumePath /L

路径有效时会返回卷名称,无效则提示错误信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 17:56:30