比起君子讷于言而敏于行,我更喜欢君子善于言且敏于行。
目录
[2. 自启动挂载](#2. 自启动挂载)
[1. 错误直觉(问题根源)](#1. 错误直觉(问题根源))
[2. Windows 的真实模型](#2. Windows 的真实模型)
[2)会话(Session / 房间)](#2)会话(Session / 房间))
[a. GUI / Remmina(桌面房间)](#a. GUI / Remmina(桌面房间))
[c.SYSTEM / 服务登录(更封闭的房间)](#c.SYSTEM / 服务登录(更封闭的房间))
[3)结论:同一用户 ≠ 同一房间](#3)结论:同一用户 ≠ 同一房间)
[3. 网络盘在 Windows 里是什么?](#3. 网络盘在 Windows 里是什么?)
[4. ~/.bash_profile 为什么可以解决问题](#4. ~/.bash_profile 为什么可以解决问题)
[5. 为什么 Remmina → SSH 不稳定](#5. 为什么 Remmina → SSH 不稳定)
[6. 最终稳定方案](#6. 最终稳定方案)
[7. 为什么linux不会出现这个问题](#7. 为什么linux不会出现这个问题)
一、remmina页面挂载方式
1.手动挂载
随便打开一个文件------此电脑 鼠标右键------映射网络驱动器------填写后点击完成


2. 自启动挂载
1) 使用想要设置的账户登陆系统(比如:admin或者test),控制面板->程序->启动或关闭windows功能: 确保nfs服务被勾选
2) cmd页面,输入gpedit.msc 回车
3) 计算机配置------>用户配置------>脚本(启动/关机)------>启动------>打开属性
❗ "登录的是 test" ≠ "脚本就是以 test用户执行的"
Windows 里,计算机启动脚本 :默认是 system && 用户登录脚本 :才是默认当前登录用户
所以这里的配置选择的是"用户配置"而不是"计算机配置"
4) 点击 预览(B)...,会显示文件的位置。新建mount_nfs.bat文件,将挂载内容根据实际情况拷进去:
net use y: \\nfs.com\shared\window /persistent:yes
5) 点击添加,选中该文件
6)双击该文件,进行一次mount



二、ssh登录方式挂载
#把这句命令加进去
vim ~/.bash_profile
cmd.exe /c "net use y: \\nfs.com\shared\windows /persistent:yes"
这条命令真正做了什么?
cmd.exe:Windows 官方、完全信任的执行环境
net use:Windows 官方网络盘登记接口;给"当前登录 Token"挂载网络盘;不是全局行为
persistent:yes 写入用户级配置(长期有效);写入注册表 HKCU\Network\X:
下次【交互式登录】自动重连
本质变化: 网络盘从"会话级" → "用户级"
三、理论知识
起因是我发现,remmina页面挂载nfs之后,ssh页面进去df -h看不到挂载的这个nfs,于是开始寻找答案。
1. 错误直觉(问题根源)
大众以为:账号一样 = 环境一样 ❌
实际上的:Windows 同时看 你是谁(用户)+ 你从哪儿进来(入口)
2. Windows 的真实模型
1)用户(User)
└─ 身份:用户名 / 密码
2)会话(Session / 房间)
a. GUI / Remmina(桌面房间)
登录方式:Remmina;RPD;本地桌面登录
特点:有桌面、有 explorer.exe、能看到大多数盘符
b.SSH(后台房间)
登录方式:ssh user@ip:端口; cygwin sshd;没桌面
特点:没桌面、没explorer.exe、 独立 Token、默认看不到交互式盘符
c.SYSTEM / 服务登录(更封闭的房间)
开机启动脚本、计划任务(SYSTEM)
特点:权限最高、但不是"用户"、用户盘符完全不可见
3)结论:同一用户 ≠ 同一房间
3. 网络盘在 Windows 里是什么?
不是全系统文件系统,更像: "某个用户在某个房间领到的使用凭证"
默认特性:1)只对创建它的会话负责;2) 不保证别的会话能看到
4. ~/.bash_profile 为什么可以解决问题
SSH 登录时一定会执行:
1)执行用户 = autotester
2)执行环境 = SSH 的 Token
3)cmd.exe /c net use
a. 拿到真正 Windows 控制台 b. net.exe 正常工作
4)结果:SSH 房间里,Y: 永远存在
5. 为什么 Remmina → SSH 不稳定
Remmina 挂载只存在于 Interactive Token
SSH 进入后偶尔看到(Token 复用 / 缓存),大多数看不到(正常现象)
重启后更混乱的原因: Token 重新生成,缓存失效
6. 最终稳定方案
Remmina使用用户登录脚本
SSH 使用 ~/.bash_profile写入cmd.exe /c net use ... /persistent:yes
核心原则:谁用,谁就在自己的登录方式里挂,双管齐下
7. 为什么linux不会出现这个问题
Linux:资源属于"系统命名空间"。谁进来,都看到同一个世界
Windows:资源属于"登录会话 / Token"。同一个人,从不同门进来,进的是不同房间
总结
Windows 的网络盘不是"用户的",而是"用户在某种登录方式里的"。