发布时间:2026/9/5 19:06:11
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),仅供参考

相关新闻

2026/9/5 19:06:11

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

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

2026/9/5 19:06:11

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

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

2026/9/5 20:01:15

AI辅助开发A股量化工具:回测校验与实战防坑指南

前两天有人私信我,说想用AI直接给推几只明天能涨的股票。我回了一句:这个方向从起跑线就歪了。大模型并不适合用来猜行情,它真正擅长的是帮我把“量化工具”这种工程强度很高的东西快速落地。我自己最近就在用AI开发一个A股量化研究工具&…

2026/9/5 20:01:15

YOLOv8+Flask口罩检测系统实战:从数据集构建到Web部署

1. 系统架构与方案选型:为什么是 YOLOv8 Flask1.1 核心需求解析口罩检测这个课题在计算机毕业设计里属于经典中的经典,每年都有大量学生选它。原因很简单:数据集成熟、模型生态完善、应用场景好讲,而且"检测系统"比&qu…

2026/9/5 20:01:15

拆穿评论区“高维叙事”:五个认知偏差与五分钟验证法

这次不聊什么新框架,也不做环境部署。我们把目光放到一个每天都在出现的场景:评论区。总有一些评论看上去层级极高、逻辑自洽、甚至值得截图收藏,可只要你试图反驳,就会发现自己不知道从哪里下嘴。它把一件具体的小事,…

2026/9/5 2:46:54

vSound小提琴数字处理器实操指南:从接线到演出的完整配置

电小提琴或者原声小提琴插电演出,第一个绕不开的坎就是声音难听。原声琴的共鸣和空气感一旦进了拾音器,出来的往往是一坨干瘪、发尖、带着奇怪塑料味的信号。我当初第一次把琴接上乐队调音台,直接被主唱吐槽"你这声音像在锯钢丝"。…

2026/9/5 2:46:52

传感器接口IC如何攻克生物化学传感的微弱信号难题?

1. 从电极到比特流:为什么生物化学传感必须依赖专用接口IC 做生物化学传感的人都有过类似的经历:明明传感器本身性能很好,信号输出却一塌糊涂——噪声大、漂移明显、重复性差,怎么调都达不到预期。很多时候问题并不在传感器&#…

2026/9/5 2:44:34

STM32F411CEU6多通道ADC采集:扫描模式+DMA实现详解

1. 多通道 ADC 的用武之地把“Multichannel ADC”和“STM32F411CEU6”这两个关键字放在一起,其实就是嵌入式开发里最常遇到的一类需求:用一块不算贵的 MCU,同时采集多路模拟信号。STM32F411CEU6 是 48 引脚的 Cortex-M4F 主控,主频…

2026/9/5 0:04:47

流式背压机制:避免前端渲染卡死与内存暴涨的滑动窗口限流

流式背压机制:避免前端渲染卡死与内存暴涨的滑动窗口限流在大模型流式输出(Streaming)与智能体实时推流的架构中,生产环境中经常出现一种“上下游生产消费速率严重失衡”的极端情况: 生产端极速产出:大模型…

2026/9/5 2:45:13

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/5 2:30:42

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/5 2:46:50

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…