我们的计算环境主要是 Windows,但我主要在 macOS 上工作。通常,我enter-pssession
使用 Windows 服务器/工作站-SSHTransport
,并且能够使用映射到该特定计算机的任何文件共享。由于不需要始终连接到不同的工作站,我尝试以某种方式通过安装文件共享New-PSDrive
或以其他方式使用 powershell 导航文件共享,以便我可以访问网络上的文件和资源。由于我主要编写脚本以供以后使用,因此我不想依赖于通过 finder 手动安装 SMB 共享然后set-location
安装到/volumes/ShareName
。我在网上很难找到文档或资源来帮助我完成这个过程。据我所知,macOS 上的 PowerShell 也不支持使用 UNC 路径。是否有任何已知的解决方法或策略可以将 SMB 共享用作“psdrive”或通过 PowerShell 访问这些文件共享?
答案1
在 Linux/macOS 上运行的 Powershell 核心实际上除了本地 bash shell 提供的工具之外没有任何针对 SMB 的特殊工具。它依赖于 OS 文件系统和工具来挂载和浏览网络文件,因此您可以像不运行 powershell 一样挂载共享。
在 MAC 上执行此操作的主要方法可能是mount_smbfs
:
mount_smbfs //[email protected]/share ./share
或者像你提到的那样通过 Finder:
/usr/bin/osascript -e 'tell app "Finder" mount volume "smb://server.domain.com/share"'
这两个命令都可以从 powershell 中正常运行
如果每次共享时系统都会提示您输入密码,请查看您的 kerberos 设置(假设您的 Mac 已加入 Windows 域)。我相信这通常是自动的,但您可以使用 为当前用户手动创建/更新令牌kinit
。