从 Linux 机器远程可靠地映射 Windows 机器上的网络驱动器

从 Linux 机器远程可靠地映射 Windows 机器上的网络驱动器

背景

对网络还不太熟悉。我有两台机器。一台是运行 Debian 的 Linux 机器(Computer A),另一台是 Windows 机器( )。Linux 机器上有一个 Samba 共享,两台机器都在同一网络上。我可以使用密钥对身份验证通过 SSH 会话Computer B登录。我还可以直接访问 Samba 共享,也可以通过将其映射到 Windows 中的驱动器号来访问。Computer BComputer AComputer B

我想Computer B通过 的 SSH 会话运行驻留在 上的 PowerShell 脚本Computer A。该脚本将顺利运行并执行命令以将 Samba 共享挂载Computer BPSDriveComputer B每次运行此脚本之前都会恢复为“基本”快照(因此在执行脚本之前驱动器从未挂载过)。

问题

在 SSH 会话中执行 PowerShell 脚本中的此行时Computer A...

New-PSDrive -Name $driveLetter -PSProvider FileSystem -Root $sharePath -Credential $cred

有时收到这个熟悉的消息

New-PSDrive : A specified logon session does not exist. It may already have been terminated.

我知道这是经典双跳问题场景,并且有解决方法。安全性不是太大的问题,因为这一切都在一个独立的网络上。让我困惑的是这种不一致。

迄今为止

经过一些调整,我发现我可以PSDrive在重新启动后Computer B成功创建然后执行 PowerShell 脚本。每次都是这种情况,而且这是我能够以PSDrive可预测的方式安装的唯一方法。这不是一个主要问题,但对于我们的自动化流程来说并不理想。

已经PSDrive成功安装,无需Computer B事先重新启动,但可能 90% 以上的时间都没有成功。

我该怎么做才能使此步骤更加一致和可靠,最好Computer B每次运行 PowerShell 脚本后都无需重新启动?还是这只是我必须解决的组件之一的怪癖?

相关内容