如何在Windows上挂载非默认端口的SMB网络共享
解决Windows通过非445端口挂载SMB共享的问题
以下是几种基于Windows原生工具和脚本的解决方案,针对你遇到的非445端口SMB挂载问题:
方法1:使用net use命令直接指定端口
这是最直接的原生命令行方式,无需修改系统配置:
# 替换成你的实际信息 net use Z: \\mysubdomain.dns.army\你的共享名 /user:Samba用户名 /port:1999
- 执行后会提示输入Samba用户密码(避免明文暴露)
Z:是你要映射的本地盘符,可替换为未被占用的盘符- 如果需要永久映射(重启后保留),添加
/persistent:yes参数
方法2:通过注册表配置服务器端口映射(长期生效)
如果需要频繁访问该共享,可通过注册表让Windows自动识别该服务器的自定义端口,无需每次命令指定:
- 打开注册表编辑器:按下
Win+R,输入regedit并回车 - 导航到路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters - 右键点击
Parameters项,选择新建 > 多字符串值,命名为CustomizedServers - 双击该值,输入
mysubdomain.dns.army:1999(每行一个服务器:端口组合) - 重启LanmanWorkstation服务使配置生效:
Restart-Service LanmanWorkstation
配置完成后,你可以直接通过文件资源管理器访问\\mysubdomain.dns.army\你的共享名,或使用不带/port参数的net use命令,Windows会自动使用1999端口连接。
方法3:PowerShell脚本自动化挂载
如果需要快速重复挂载,可编写简单脚本简化操作:
# 自定义参数 $driveLetter = "Z:" $shareName = "\\mysubdomain.dns.army\music_share" $sambaUser = "music_assoc_user" $smbPort = 1999 # 断开已存在的同名映射 if (Get-SmbMapping -LocalPath $driveLetter -ErrorAction SilentlyContinue) { Remove-SmbMapping -LocalPath $driveLetter -Force } # 执行挂载操作 net use $driveLetter $shareName /user:$sambaUser /port:$smbPort
- 运行脚本后会提示输入密码,无需明文写入脚本
- 可将脚本保存为
.ps1文件,右键选择“用PowerShell运行”快速执行
注意事项
- 确保树莓派的Samba配置已修改端口:在
smb.conf的[global]段添加smb ports = 1999,然后重启Samba服务(sudo systemctl restart smbd nmbd) - 确认Windows防火墙允许1999端口的TCP流量通过(若防火墙开启)
内容的提问来源于stack exchange,提问作者BeatEngine
相关产品推荐
相关产品推荐

