我想访问我们 Intranet 上的 SMB 共享。
- 当我执行
我可以输入我的密码并获取所有共享的列表。smbclient -L //intranet.host/ -U myuser
- 当我想进入 smb shell 时
我没有被要求输入密码,并且命令返回时没有任何输出。smbclient //intranet.host/ -U myuser
我在这里想念什么?
我正在尝试在 bash 脚本中使用 smbclient 在远程 Windows 服务器上创建目录。
虽然这有效:
smbclient -U "DOMAIN/$username" "//remoteserver/folder with spaces" --directory "Another folder with spaces/" -c "mkdir /newfolder/"
这不会:
smbclient -U "DOMAIN/$username" "//remoteserver/folder with spaces" --directory "Another folder with spaces/" -c "mkdir /folder to create with spaces/"
而是创建了一个简称为“文件夹”的文件夹。我尝试了许多变体,如下所示:
"mkdir /folder\ to\ create\ with\ spaces/"
"mkdir '/folder to create with spaces/'"
'mkdir '/folder to create with spaces/''
但似乎找不到神奇的组合。
从Arch Linux Wiki 条目中收集,我认为是通过 SMB 从我的 Arch Linux 4.20.6 访问 Windows 共享驱动器的最小设置:
sudo pacman -S samba
sudo echo "logging = systemd" >> /etc/samba/smb.conf
因为smb
服务需要这个配置文件,否则它会因错误而崩溃:
Job for smb.service failed because the control process exited with error code.
See "systemctl status smb.service" and "journalctl -xe" for details.
sudo systemctl start smb
假设远程 Windows 机器位于172.16.17.52
,我可以列出共享名称
smbclient -L 172.16.17.52 -U MyUserName%MyPassword -W OurWindowsDomain
OurRemoteDirectory
其中包括我想访问的具有共享名称的“磁盘”类型的服务,即从它传输文件和向它传输文件。
希望能够OurRemoteDirectory
在共享驱动器上访问,我发出
smbclient 172.16.17.52/OurRemoteDirectory -U MyUserName%MyPassword -W OurWindowsDomain
但这产生了这个错误消息:
Unable to initialize messaging context
172.16.17.52: Not enough '\' characters in service
如何修复此错误并OurRemoteDirectory
在共享驱动器上访问?