Winboat install.bat 逐行拆解:一个脚本如何装好两个 Windows 服务
Winboat install.bat 逐行拆解一个脚本如何装好两个 Windows 服务【免费下载链接】winboatRun Windows apps on Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboatWinboat 让你在 Linux 桌面上直接运行 Windows 应用。但有个绕不开的问题跑着跑着 Windows 虚拟机重启了Linux 侧的窗口全掉线手动进虚拟机点半天才能恢复。install.bat 就是为消灭这件事而生的它在 Windows 端把后台服务、开机自启、端口放行一次性装好之后每次开机Linux 侧的应用都能自己连回来。install.bat 执行顺序双击后依次发生的 5 件事先说清楚它在哪运行这个脚本跑在 Windows 虚拟机里素材来自C:\OEM目录WinBoat 部署时把待装文件放进来的约定位置整个流程全自动、不需要你点确认。按顺序看它干了什么。第 1 步导入一份放宽远程桌面的注册表配置 ️接下来这一行做的事是把一份 .reg 文件写进系统注册表reg import %OEM_DIR%\RDPApps.regRDPApps.reg 的内容拆开看就三件事关闭 RemoteApp 白名单——默认 RDP 只允许白名单里的应用关掉后 Winboat 才能远程拉起任意 Windows 程序允许未列入清单的程序——与上一条配套跟随服务器端键盘布局——避免远程会话弹出奇怪的键盘设置不写这步Linux 侧的应用菜单点了也没反应RDP 根本拉不起程序。第 2 步建安装目录先让 Windows Defender 闭嘴建目录本身很简单真正关键的是紧跟的一句 PowerShellpowershell -ExecutionPolicy Bypass -Command Add-MpPreference -ExclusionPath %WB_DIR%安装目录被加进 Defender 的排除列表。为什么服务程序即将被高频读写实时扫描会拖慢启动甚至锁文件导致安装半途失败。先排除、再拷文件顺序不能反。第 3 步把 OEM 目录整体拷进安装位置xcopy %OEM_DIR%\* %WB_DIR%\ /Y /E/Y是覆盖时不再询问/E是连空目录也一并复制。落地的是几样东西server\服务本体、updater\更新服务、guest_tokenLinux↔Windows 之间的身份凭证、以及 nssm.exe——下一位主角。第 4 步用 NSSM 注册并启动两个系统服务 ️这是整个脚本的心脏。NSSM 是一个能把普通 exe 伪装成系统服务的命令行工具——注册之后这个 exe 就出现在服务管理器里能被系统托管、崩溃自动拉起、开机自启。%NSSM% install WinBoatGuestServer %WB_DIR%\server\winboat_guest_server.exe %NSSM% set WinBoatGuestServer Start SERVICE_AUTO_START %NSSM% set WinBoatGuestServer ObjectName NT AUTHORITY\SYSTEM第一行把 exe 注册为服务从此它归 Windows 服务管理器管SERVICE_AUTO_START开机自动启动NT AUTHORITY\SYSTEM 以系统账户运行用户没登录、屏幕锁着也能工作第二个服务WinBoatGuestServerUpdater配一套同样的动作负责后文会提到的更新。第 5 步放行两个端口然后点火netsh advfirewall firewall add rule nameAllow WinBoat API 7148 dirin actionallow protocolTCP localport7148两条 netsh 分别放行 TCP7148API 端口和7150更新端口然后nssm start把两个服务拉起来。脚本最后还挂了一个开机任务schtasks /create /tn TimeSyncTask /sc ONSTART ...time-sync.bat 在每次开机时把虚拟机时钟与宿主机对齐——Windows 虚拟机重启后时钟漂移不同步的话时间戳校验和日志都会乱套。到这里一条时间线走完了调注册表 → 建目录并排除杀毒 → 拷文件 → 注册并启动服务 → 放行端口 → 挂开机任务。之后无论虚拟机怎么重启Linux 侧都会自己连回来。为什么非要把 exe 注册成 Windows 服务 普通 exe 双击运行生命周期跟当前登录用户绑定注销就没了没人登录就不跑。而 WinBoat 的 guest server 要干的事恰恰相反——它必须在开机瞬间、无人登录时就监听 7148 端口等着 Linux 侧来连。服务形态天然满足不依赖任何会话、由系统统一调度和看门。用 NSSM 而不是自己写服务代码是因为一个真正的服务要跟服务控制管理器SCM对话应答暂停/停止、上报状态、崩溃后按策略重启。这些协议自己实现又是一门苦差事NSSM 把 exe 包成合规服务一行 install 搞定。代价是目录里多一个 nssm.exe——它的完整性可以用 nssm.sha1.txt 里的f280858dcfefabc1a9a006a57f6b266a5d1fde8e校验对不上说明文件被动过。放行 7148 端口的逻辑为什么非加不可 Windows 防火墙的入站策略默认是全禁Linux 客户端连不进来十有八九不是服务没起而是端口被拦。所以 netsh 这条规则不是可选项7148对应 Linux 侧 constants.ts 中的GUEST_API_PORT是应用列表、文件访问等所有 API 的入口7150GUEST_UPDATE_PORT更新通道专门给 updater 服务收包用两条规则都限定了protocolTCP只开该开的那两个口其余保持 Windows 默认收紧——放得开、也放得克制。服务起不来 / 端口不通时怎么查按从 Windows 侧往 Linux 侧的顺序排障基本能覆盖所有情况先查服务在不在在 Windows 里执行sc query WinBoatGuestServer。提示服务不存在说明 install.bat 没跑完重新触发即可STATERUNNING则继续下一步。本地健康检查在 Windows 里访问http://127.0.0.1:7148/healthupdater 代码里自己探活用的就是这个地址正常会返回{status:ok}。本机通、Linux 不通 → 查防火墙netsh advfirewall firewall show rule nameAllow WinBoat API 7148规则丢了就重跑第 5 步那条 netsh。服务反复退出 → 看文件完整性检查C:\Program Files\WinBoat\server目录是否齐全缺文件就重跑 install.bat/Y参数会直接覆盖旧文件。哪些变量可以改 WB_DIR默认C:\Program Files\WinBoat理论上可改但服务路径、Defender 排除项全都引用它改了等于推倒重装不折腾最好不动。OEM_DIR固定C:\OEM这是 WinBoat 部署流程的约定输入别动。更新不用改脚本日常升级走第二个服务——updater 监听 7150 接收 zip 包停旧服务、替换文件、重启并健康检查失败自动回滚。注意 updater 本体永不更新它是更新链条的根只能靠整个镜像重做。一句话收尾整条链路里 Linux 侧负责容器、RDP 会话和应用窗口Windows 侧的全部工作浓缩在这 40 来行批处理里常驻服务、开机自启、端口放行一次装齐。虚拟机重启后你的 Linux 桌面还能秒连 Windows 应用功劳都在这条时间线上。【免费下载链接】winboatRun Windows apps on Linux with ✨ seamless integration项目地址: https://gitcode.com/GitHub_Trending/wi/winboat创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

MaxKB 安装与上手指南:10 分钟从零跑通企业级智能体平台

MaxKB 安装与上手指南:10 分钟从零跑通企业级智能体平台

MaxKB 安装与上手指南:10 分钟从零跑通企业级智能体平台 【免费下载链接】MaxKB 🔥 MaxKB is an open-source platform for building enterprise-grade agents. 强大易用的开源企业级智能体平台。 项目地址: https://gitcode.com/GitHub_Trending/ma/M…

2026/11/13 13:58:33 阅读更多 →
基于SpringBoot与Vue.js的线上教育平台全栈开发实战

基于SpringBoot与Vue.js的线上教育平台全栈开发实战

简介:这是一套基于SpringBootVue.js全栈开发的线上教育培训办公系统,面向教育机构开发者、高校计算机专业师生及在线教育平台创业者,解决远程教学场景中课程管理、直播互动、作业考评与多角色协同等核心需求。资源包共871个文件,涵…

2026/10/31 15:37:23 阅读更多 →
任务系统改造:从郿坞夺宝被要求删除到安全下线与重构实践

任务系统改造:从郿坞夺宝被要求删除到安全下线与重构实践

一个“郿坞夺宝”要玩家反复跑图、等刷新、抢争夺目标,奖励还看脸,被玩家喊“真应该删除”并不让人意外。但放到开发侧看,问题就没那么简单:任务到底能不能删,会影响哪些关联系统,如何安全下线而不破坏玩家…

2026/10/24 6:55:02 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/11/13 5:13:25 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/11/13 5:13:25 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/11/13 5:13:25 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/11/12 18:22:26 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/11/12 18:22:25 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/11/13 5:13:25 阅读更多 →

日新闻

周新闻

月新闻