2

我有一个映射两个驱动器的 Perl 脚本,然后将其中一个驱动器的文件复制到另一个驱动器。Perl 脚本位于 Windows 机器上,但我们是从 Linux 机器通过 SSH 连接到 Windows 机器以执行脚本。当我直接从 Windows 框中运行脚本时,一切正常,驱动器被映射并且文件被成功复制。当我尝试通过 SSH 从我的 Linux 机器执行脚本时,脚本失败并且我得到以下输出:

本地设备名称已被使用。

错误映射源 \\xxx.xxx.net\localdirectory

尝试映射第一个驱动器时会发生此错误,我不知道它是否会在第二个驱动器上失败,因为它还没有做到那么远。

我还有其他几个以相同方式执行的 Perl 脚本(通过 ssh 从 Linux 到 Windows 机器)并且它们执行没有问题,但这是唯一一个映射驱动器的脚本。这是我用来执行脚本的代码:

#!/bin/sh

ssh -t -t user@server "cd /Path/to/Perl/Script; /cygdrive/C/Perl/bin/perl.exe Script.pl"
4

2 回答 2

1

您的 ssh 守护进程以什么用户身份运行?大概是系统。据我回忆,该用户无权映射网络驱动器。你不能直接使用 samba 在 Linux 机器上执行此操作吗?

于 2012-06-28T18:58:06.823 回答
0

如果将来有人需要这个,我们可以让它工作。问题是由于我们的 Windows 机器上的 CopSSH 服务使用了 SVCCopSSH。我们必须禁用 CopSSH 服务,将登录设置为我们用于从 Linux SSH 到 Windows 的网络帐户,然后重新启动服务。这解决了我们遇到的所有问题。

于 2012-07-02T20:41:40.217 回答