Windows 使用SSH从Linux框中执行Perl脚本;“本地设备名称已在使用中”;

Windows 使用SSH从Linux框中执行Perl脚本;“本地设备名称已在使用中”;,windows,linux,perl,ssh,system-error,Windows,Linux,Perl,Ssh,System Error,我有一个Perl脚本,它映射两个驱动器,然后继续将文件从一个驱动器复制到另一个驱动器。Perl脚本位于Windows框中,但我们正在将Linux框中的文件发送到Windows框中以执行脚本。当我直接从Windows框运行脚本时,一切正常,驱动器映射成功,文件复制成功。当我试图通过SSH从Linux设备执行脚本时,脚本失败,我得到以下输出: The local device name is already in use. Error mapping source \\xxx.xxx.net\lo

我有一个Perl脚本,它映射两个驱动器,然后继续将文件从一个驱动器复制到另一个驱动器。Perl脚本位于Windows框中,但我们正在将Linux框中的文件发送到Windows框中以执行脚本。当我直接从Windows框运行脚本时,一切正常,驱动器映射成功,文件复制成功。当我试图通过SSH从Linux设备执行脚本时,脚本失败,我得到以下输出:

The local device name is already in use. Error mapping source \\xxx.xxx.net\localdirectory
您的ssh守护进程作为哪个用户运行?大概是系统。据我回忆,该用户无权映射网络驱动器。你不能直接使用samba在Linux机器上完成这项工作吗?

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

我使用一个系统帐户登录,当我使用ssh登录时,它会将帐户显示为:svccopssh。就我正在做的事情而言,如果我可以使用已经存在的PERL脚本而不必修改它们,那么我的工作就会简单得多。为了实现这一点,我将从我的Linux机器中下载到它们当前所在的Windows机器中,并执行它们。我可以让我们的管理员检查svccopssh帐户,以确保它具有映射驱动器的正确权限。
#!/bin/sh

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