【问题标题】:Powershell UNC Path Test-PathPowershell UNC 路径测试路径
【发布时间】:2020-11-19 13:33:18
【问题描述】:

如何使用 UNC 而不是映射盘符来测试路径

返回真

Test-Path -Path Y:\FNDDEV

Windows 资源管理器

PC > EAMDEV(\\Eamcifsdev.lirrad.lirr.org) (Y:) > FNDDEV

【问题讨论】:

  • 这会返回错误的 Test-Path -Path '\\EAMDEV\Y$\FNDDEV'
  • 当你使用 -LiteralPath 时会发生什么?检查Y: 映射。这真的指向\\EAMDEV\Y$ 吗?
  • Net Use 对 Y 显示什么?
  • 这行得通。有人能解释一下为什么吗?

标签: powershell unc


【解决方案1】:

如果您正在寻找网络驱动器的 UNC 路径,只需使用 Get-PSDrive。它将收集有关驱动器的所有信息,包括提供程序、根目录、当前位置、已用空间、可用空间和名称。

$drive = Get-PSDrive -Name (get-location).Drive.Name

例如,name 参数通过使用Get-Location 用作当前驱动器号。

$root = if($drive.DisplayRoot -ne $null){$drive.DisplayRoot} else {$drive.Root}

我们将.Root 数据与驱动器号和网络位置进行比较。 .DisplayRoot 为我们提供网络位置/网络路径。 .Root 给我们驱动器号。如果它是本地路径,它将是 Null,因为没有 .DisplayRoot 可提供。

Join-Path -Path $root -ChildPath $drive.CurrentLocation

最后使用Join-Path 将它们放在一起以提供网络路径和当前位置(如果它是映射驱动器)。如果没有,您将只得到驱动器号。

【讨论】:

    【解决方案2】:

    我让它与 UNC 一起使用,格式如下:

    \Eamcifsdev.lirrad.lirr.org\EAMDEV\FNDDEV\docuploads\MTADEV4\Backup

    感谢回复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多