我有一个Perl脚本,它映射两个驱动器,然后继续将文件复制到其中一个驱动器到另一个驱动器。Perl 脚本位于 Windows 机器上,但我们从 Linux 机器 SSH 到 Windows 机器来执行脚本。当我直接从Windows框中运行脚本时,一切正常,驱动器已映射,文件已成功复制。当我尝试通过 SSH 从我的 Linux 盒子执行脚本时,脚本失败,我得到以下输出:
本地设备名称已在使用中。映射源 \\xxx.xxx.net\本地目录时出错
尝试映射第一个驱动器时会发生此错误,我不知道它是否会在第二个驱动器上失败,因为它还没有走那么远。
我还有其他几个以同样的方式执行的Perl脚本(通过从Linux到Windows盒子的ssh),并且它们执行没有问题,这是唯一映射驱动器的脚本。这是我用来执行脚本的代码:
#!/bin/sh
ssh -t -t user@server "cd /Path/to/Perl/Script; /cygdrive/C/Perl/bin/perl.exe Script.pl"
你的 ssh 守护程序以什么用户身份运行? 大概是系统。 据我所知,该用户无权映射网络驱动器。 你不能直接使用桑巴舞在Linux盒子上做到这一点吗?
如果将来有人需要这个,我们可以让它工作。该问题是由于SVCCopSSH用于Windows机器上的CopSSH服务。我们必须禁用CopSSH服务,将登录设置为我们用于从Linux到Windows的SSH的网络帐户,然后重新启动该服务。这解决了我们遇到的所有问题。