【问题标题】:Create a virtual drive with PowerShell使用 PowerShell 创建虚拟驱动器
【发布时间】:2019-05-23 11:01:24
【问题描述】:

我正在尝试在 Windows 中创建一个 D: 驱动器,它使用 PowerShell 指向某个本地目录(例如 C:\DDrive)。

这段代码运行良好:

New-PSDrive -Name D -Root "C:\D_Drive\" -PSProvider "FileSystem"

但是在 Windows 资源管理器中没有 D:-drive 可见。

如何正确使用该命令? 另外:驱动器应该是永久性的,所以我尝试添加一个“-Persist”参数。但这会导致错误(“未知参数“-Persist”...”)。

【问题讨论】:

  • 显然只支持映射的 UNC 驱动器,这可能是最好的,因为这些驱动器可以通过 -persist 选项保留在“HKCU\Network”中,并且可以反映到链接中的两个登录会话UAC 登录(标准和提升)。对于 C: 驱动器,您可以使用 C$ 管理共享,例如“\\localhost\C$\D_Drive”。
  • 顺便说一句,在 PowerShell 团队中开发 PSDrive 的人有点无能。冒号一直是驱动器/设备名称的部分,就像它对于其他 DOS 设备(例如“CON”,又名“CON:”)是可选的。 NT 设备挂载点的名称(即 SymbolicLink 对象)包含冒号,我们在直接打开卷时需要它,例如“\\.\C:”。

标签: windows powershell new-psdrive


【解决方案1】:

【讨论】:

    【解决方案2】:

    只要运行:

    subst D: "C:\D_Drive\"
    

    在非提升的 PS 会话中(不要以管理员身份运行)。

    【讨论】:

    • subst.exe 驱动器(即通过DefineDosDevice 创建的针对文件系统目录的驱动器号设备)并非没有问题。首先,正如您提到的,它们不会反映到链接的登录会话中。它们还会导致某些 API 失败(例如 GetVolumePathName),假设驱动器号是卷设备或映射网络驱动器的连接点,而不是文件系统目录的连接点。
    • 这实际上是一个很好的信息,谢谢。现在我需要用它测试一些东西来亲眼看看。我们又来了... :)
    猜你喜欢
    • 2010-11-08
    • 1970-01-01
    • 2023-04-05
    • 2010-09-08
    • 2011-11-03
    • 1970-01-01
    • 1970-01-01
    • 2012-02-25
    • 2014-02-21
    相关资源
    最近更新 更多