PowerShell 无法在网络挂载上创建文件夹

PowerShell 无法在网络挂载上创建文件夹

我创建了一个以字母 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 无论您当前的位置如何都会使用该提供程序。

PowerShell 陷阱:UNC 路径和提供程序

相关内容