使用 Microsoft 远程桌面时无法将驱动器号映射到重定向文件夹

使用 Microsoft 远程桌面时无法将驱动器号映射到重定向文件夹

我在使 Microsoft 远程桌面的文件夹重定向功能与命令行应用程序协同工作时遇到了一些困难。

  • 服务器正在运行 Windows 2008R2。
  • 客户端计算机是 OS X Yosemite,运行 Microsoft 远程桌面版本 8.0.12(内部版本 25282)

我在 OS X RDP 客户端中配置了一个用于重定向的文件夹,其中“名称”字段为“andrew”,“路径”字段为 /Users/andrew。这工作正常。当我连接到服务器时,我在“计算机”下看到重定向的文件夹,并且可以以图形方式浏览它。在命令提示符中,NET USE 也会显示它:

C:\Users\Administrator>net use
New connections will not be remembered.


Status       Local     Remote                    Network

-------------------------------------------------------------------------------
                       \\TSCLIENT\andrew         Microsoft Terminal Services
The command completed successfully.

但是,文件夹没有关联的驱动器号。这对我来说是个障碍。这种重定向的全部目的是允许我在 Windows 计算机上使用命令行构建实用程序,但在 Mac 上编辑和操作源代码。cmd.exe shell 无法处理 UNC 路径,而 powershell 不是一个选项,因为构建实用程序不可避免地会转到 cmd 来执行诸如运行 vcvars 等操作,如果 CWD 是 UNC 路径,则它会失败。所以,遗憾的是,我真的需要映射驱动器号,否则这是行不通的。

如果我尝试使用 NET USE 或图形“映射网络驱动器”来建立驱动器号,它似乎可以工作:

C:\Users\Administrator>net use Y: \\TSCLIENT\andrew
The command completed successfully.

重新运行 NET USE 显示驱动器存在:

C:\Users\Administrator>net use 新的连接将不会被记住。

Status       Local     Remote                    Network

-------------------------------------------------------------------------------
             Y:        \\TSCLIENT\andrew         Microsoft Terminal Services
                       \\TSCLIENT\andrew         Microsoft Terminal Services
The command completed successfully.

但是,如果我尝试实际访问 Y 驱动器,它不起作用:

C:\Users\Administrator>y:
The device is not connected.

随后,如果我尝试从图形外壳访问最初工作的重定向文件夹,我会发现它也无法正常工作。我现在收到一个对话框,提示

\\tsclient\andrew is not accessible. You might not have permissions to use this network resource.
Contact the administrator of this server to find out if you have access permissions.

Attempt to access invalid address.

看来我是并非唯一遇到这种困难的人但是那里的“答案”却毫无帮助,它所链接的文档也是如此。

如果没有驱动器号,文件夹重定向就无法满足我的需求,但如果有办法实现这一点,将会非常有帮助。

有什么想法吗?这将使我在 Windows 上测试时无需 rsync 源代码,这将极大地提高工作效率。

答案1

使用符号链接而不是驱动器号,在登录 TS 服务器时将以下内容放入 .BAT 中:

MKLINK /D C:\Andrew \\tsclient\Andrew

此符号链接将在重启后持续存在,并且不再需要驱动器号。

答案2

启动新的 RDP 会话(从当前会话注销后)。然后,创建包含以下行的批处理文件:

net use \\tsclient\andrew /delete /persistent:yes
net use \\tsclient\andrew /delete
net use y: \\tsclient\andrew

运行该批处理文件。

相关内容