我创建了一个以字母 Z: 开头的驱动器并将其共享,以便网络路径为:\\GOELA2682012SRV\srv2012r2
我现在想使用 PowerShell 在那里创建一个文件夹。
这不起作用:
New-Item -Path "\\GOELA2682012SRV\srv2012r2\Users\test" -ItemType Directory
虽然这确实有效:
New-Item -Path "Z:\Users\test" -ItemType Directory
为什么?
答案1
尝试将其添加FileSystem::
到 UNC 路径前面,这样它就变成FileSystem::\\GOELA2682012SRV\srv2012r2\Users\test
当您将 UNC 路径传递给某些 cmdlet 时,PowerShell 的行为可能会有点奇怪。PowerShell 不会将这些路径识别为“根”,因为它们不在 PSDrive 上;因此,与 PowerShell 当前位置相关联的任何提供程序都会尝试处理它们。例如:
Set-Location C: Get-ChildItem -Path \\$env:COMPUTERNAME\c$ Set-Location HKLM: Get-ChildItem -Path \\$env:COMPUTERNAME\c$
第一个命令运行正常(假设您已启用 ac$ 共享并能够访问它),而第二个命令会给出“找不到路径”错误,因为注册表提供程序尝试使用 UNC 路径而不是 FileSystem 提供程序。您可以通过在 UNC 路径前加上“FileSystem::”来解决这个问题,这将使 PowerShell 无论您当前的位置如何都会使用该提供程序。