UltraVNC控制台改版
公司网络内需要内部远程处理用户计算机问题,碍于版权问题,找到了UltraVNC开源免费软件得益于论坛大佬开发的UltraVNC控制台,方便了不少,但是使用后发现连接的机器越来越多,无法删除,开始臃肿
大佬原贴地址
于是乎,得益于AI的发展迅速,再他的基础上加了一些功能,功能比较简单,菜单一看就明白
需要配合UltraVNC,.NET 8.0框架 使用,UltraVNC官方地址: https://uvnc.com/
说明手册:
# VNCConsole 使用说明手册
> 桌面级 UltraVNC 控制台,统一管理你控制过的所有电脑。
> 替代原「VNC控制台1.1」的密码明文 + 历史不自动保存 + 无批量删除三大痛点。
---
## 1. 安装
### 1.1 选择安装包
| 包名 | 体积 | 适用场景 |
|------|------|----------|
| `VNCConsole-publish.zip` | **12 MB** | **推荐**。需要本机装 .NET 8 Desktop Runtime(绝大部分 Win10/Win11 已自带) |
| `VNCConsole-single.7z` | 47 MB | 跨机分发,无需 .NET 8,双击即跑(7z 格式,需装 7-Zip) |
### 1.2 解压
任意目录,例如 `D:\Tools\VNCConsole\`。**不要**放到 Program Files 下,否则密码 DPAPI 加密会跨用户失效。
### 1.3 准备 vncviewer.exe
从 UltraVNC 安装包或网上下载 `vncviewer.exe`,放到以下任一位置:
- ✅ `VNCConsole.exe` 同目录(推荐)
- ✅ `C:\Program Files\uvnc bvba\UltraVNC\vncviewer.exe`
- ✅ 任意位置 → 启动后菜单「文件 → 设置 vncviewer 路径...」自定义
### 1.4 首次启动
双击 `VNCConsole.exe`,主界面分为 3 块:
- **顶部 Card**:填写主机名/IP + 端口 + 密码 + 保存/连接
- **中部 Toolbar**:搜索框 + 全选/全不选/删除
- **底部列表**:所有历史连接记录
---
## 2. 基础使用
### 2.1 快速连接新主机
1. 顶部输入主机名/IP(浅蓝填充的就是地址框,**一眼能找到**)
2. 端口默认 5900,如有调整直接改
3. 密码默认填好(默认密码见 `src/Program.cs` 的 `_defaultPassword`)
4. 点「**连接**」或按 **回车键**
连接成功会自动保存到历史列表。
### 2.2 连接已保存的电脑
在底部列表**双击**该条记录,或者选中后按 **Enter** 键。
### 2.3 搜索
顶部 toolbar 的搜索框支持模糊匹配:
- 主机名 / IP
- 备注
输入即过滤,无需按回车。
### 2.4 批量删除
1. 勾选列表中要删除的项
2. 点「**删除**」按钮
3. 确认删除(不可撤销)
「全选」「全不选」快捷切换。
### 2.5 列表排序
点击列头(主机名/IP / 端口 / 主机名 / 备注 / 最后连接)切换升序/降序。
---
## 3. 导入旧数据
如果你之前用过「VNC控制台1.1」,可以一键迁移:
1. 菜单「**文件 → 导入旧 data.db...**」
2. 选择旧版的 `data.db` 文件(一般位于 `E:\User\Desktop\VNC控制台1.1\`)
3. 程序会读取旧记录,**密码用 DPAPI 重新加密**到新库
历史记录、备注、密码全部带过来。
---
## 4. 数据存储
| 内容 | 路径 |
|------|------|
| 历史连接 | `%AppData%\VNCConsole\connections.db` (SQLite) |
| vncviewer 路径 | `%AppData%\VNCConsole\vncviewer.config.json` |
| 启动日志 | `%AppData%\VNCConsole\launch.log` |
| 自动备份 | `%AppData%\VNCConsole\backup\` (每次启动自动备份上一次的 db) |
**重要**:换机器或重装系统后,旧库的 DPAPI 密码会**无法解密**(DPAPI 绑定用户账户)。届时需要重新输入密码保存。
---
## 5. IP 变更自动兜底(v20.20+)
如果某台电脑的 IP 变了(DHCP 重分配或手动改),直接双击列表条目会连接失败。
程序会**自动弹窗询问**:
> 原 IP 192.168.12.186 可能已变更(DHCP / 手动改)。
> 是否尝试用主机名 htws1420586 重新连接?
>
> • 选「**是**」→ 用主机名连接,并**自动更新**该条记录的 IP
> • 选「**否**」→ 保持原 IP 不变
选「是」后,主机名连接成功会触发 v20.6 的主机名抓取逻辑,**新 IP 自动写回**到历史记录,下次列表里就是新 IP。
**前提**:历史记录的「主机名」字段必须是有效主机名(不是 IP 形式)。
- ✅ 自动抓取成功的(v20.6+)都有主机名
- ❌ 手动 IP 连接且没成功的只有 IP,没有主机名可用
---
## 6. 导出
菜单「**文件 → 导出选中到 CSV...**」或「**导出全部到 CSV...**」
可用于备份、或迁移到 Excel 做盘点。
---
## 7. 高级:自定义密码
默认密码在源码 `src/Forms/MainForm.cs` 的 `_defaultPassword` 字段,编译期写入。如需修改:
1. 修改源码
2. 重新编译(`dotnet build -c Release`)
3. 重新发布
如果只想临时改某台机器的密码:在顶部「密码」框直接覆盖即可,会随该条记录一起保存。
---
## 8. 常见问题
### Q1: 双击连接没反应?
- 检查 vncviewer.exe 是否在默认路径,否则菜单「文件 → 设置 vncviewer 路径...」
- 查看「文件 → 查看启动日志」看具体错误
### Q2: 提示「Failed to connect to server」
- IP 不通:ping 一下主机
- 端口错:默认 5900,部分机器是 5901/5902 (display 1/2)
- 防火墙拦截:确认目标机器的 UltraVNC server 监听端口开着
### Q3: 密码错?
- 检查目标机器的 UltraVNC server 配置密码是否一致
- DPAPI 加密的用户换了?重装系统后旧密码失效,需要重新输入
### Q4: 列表里的 IP 怎么批量改成主机名?
- 当前没有批量改名功能
- 逐条双击连接:v20.6 抓取逻辑会**自动填入主机名**
- 然后程序会按 v20.20 提示你确认用主机名重连
### Q5: 安装包 47MB 那个 7z 怎么解压?
- 装 (https://www.7-zip.org/) 后右键 → 7-Zip → 解压到当前文件夹
- 或命令行:`7z x VNCConsole-single.7z`
### Q6: 能直接看桌面而不连过去吗?
- vncviewer 自带「View Only」模式(菜单「文件 → vncviewer 信息」可看版本)
- 当前控制台不直接集成预览,需要启动后切到 vncviewer 窗口
---
## 9. 版本历史
| 版本 | 关键改动 |
|------|----------|
| v20.20 | 失败时主机名兜底重连 + 弹窗确认 |
| v20.19 | 按钮垂直居中修复 |
| v20.18 | 按钮 Padding 修复文字不被边框切 |
| v20.17 | 主机名/IP 框 1px 边框 + 浅蓝填充 |
| v20.15 | 弃用 SplitContainer,改 Dock=Top + Dock=Fill |
| v20.13 | Card 外框 1px 细线 + 浅蓝主色 |
| v20.10 | 紧凑布局(Card124+Toolbar36=160) |
| v20.9 | TextBox MinimumSize + 删除"编辑选"按钮 |
| v20.8 | service mode 标题匹配主机名抓取 |
| v20.7 | 菜单栏去主蓝背景 |
| v20.6 | 主窗口标题正则抓主机名 |
| v20.5 | Status 窗口客户区文本检测失败 |
| v20.4 | 浅蓝商务风 + 三路连接判断 |
---
## 10. 反馈
通过网盘分享的文件:
链接: https://pan.baidu.com/s/1sRAKKUd5fsV0Qp4-DIB6EQ?pwd=75v5 提取码: 75v5 复制这段内容后打开百度网盘手机App,操作更方便哦
夸克地址,如果不能用夸克,请告知,谢谢
链接:https://pan.quark.cn/s/72974552876c
提取码:kmFz 整体框架挺好,细节上还能再展开。有遇到类似情况的吗?想听听别人的做法。 这个角度之前没想过,记下来了。有没有后续?想蹲一个更新。 思路很清晰,逻辑上也能自洽。想请教下有没有推荐的上手路径? 看完之后对这块的认识清晰了不少。 看完挺有收获的,之前一直没搞明白这块。有没有后续?想蹲一个更新。 这几条经验很实用,尤其是最后那点。 这个角度之前没想过,记下来了。 这个案例很有代表性,能说明不少问题。 分析得挺到位,把关键因素都点出来了。